• [^] # Re: Petite erreur

    Posté par . En réponse au message Structures.... Évalué à 5.

    non , toi non plus tu n'as pas compris

    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")