P est un pointeur ( c'est a dire une adresse) qui pointe vers une zone de la memoire que lui a aloué malloc. zone permanente tant qu'on ne fait pas free()
quand vous faites
P= "aaa" ;
vous faites pointer P vers une AUTRE zone de la memoire . et dans le cas present une zone de la PILE de fonctions. quand le prog sort de wazaa , la zone de "aaa" est perdue et reutilisee pour autre chose. donc plantage garanti.
ce qu'il faut faire c'est copier "aaa" dans la zone allouee par malloc :
[^] # Re: Petite erreur
Posté par kesako . En réponse au message Structures.... Évalué à 5.
ce sont des POINTEURS
quand vous faites
char * P = malloc (...)
P est un pointeur ( c'est a dire une adresse) qui pointe vers une zone de la memoire que lui a aloué malloc. zone permanente tant qu'on ne fait pas free()
quand vous faites
P= "aaa" ;
vous faites pointer P vers une AUTRE zone de la memoire . et dans le cas present une zone de la PILE de fonctions. quand le prog sort de wazaa , la zone de "aaa" est perdue et reutilisee pour autre chose. donc plantage garanti.
ce qu'il faut faire c'est copier "aaa" dans la zone allouee par malloc :
strcpy (P,"aaa")