Histoire de mieux comprendre.

Je vois dans la FAQ C ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
char *p="bonjour";
 
p[3] = 'a';             /* incorrect */
strcpy(p, "salut");     /* incorrect */
 
p = "salut";            /* correct */
Ceci veut-il dire que je peux faire un :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
char * maValeur;
maValeur = "salut toto";
Si je comprends bien, maValeur est un pointeur qui pointe vers "salut toto".

Et donc, malloc permet de reserver de l'espace mémoire.
Mais dans ce cas, pourquoi ne pas faire avant un maValeur = malloc(10); pour y mettre "salut toto" par la suite?

J'ai du mal à sasir toutes les doc que je lis sur ce sujet...