Allocation memoire et fonction .....

Résolu
rocksider Messages postés 107 Statut Membre -  
rocksider Messages postés 107 Statut Membre -
Bonjour,
j'ai esseyer de voir si comme j'ai pu le lire si c'était possible d'allouer avec une 1er fct puis ensuite de la remplir avec une autre mais ça n'a pas marché. voilà le pti exemple qui me donne l'erreur suivante Erreur de segmentation :(
#include<stdio.h>
#include<stdlib.h>

void test(char *u)
{
u=malloc(5*sizeof(char));
printf("c ok je sort mnt d la fct");
}

int main()
{
char *p;
test(p);
scanf("%s",p);
printf("\n taraaaaaaaa -->%s",*p);
return 0;
}

3 réponses

kilian Messages postés 8854 Statut Modérateur 1 526
 
Salut,

Dis toi qu'un pointeur c'est une valeur, et cette valeur est une adresse.
char *p;
test(p); 

Exemple ici si p = NULL, alors ce sera l'équivalent de test(NULL);

De son côté, test() va se créer une variable locale nommée u.
u va prendre la valeur de malloc. C'est à dire une adresse. Mais cette adresse sera perdue par la sutie car elle sera stockée localement dans u, et non pas dans le p.
0
rocksider Messages postés 107 Statut Membre 9
 
euh voilà 1er erreur j'ai oublié de renvoyer la nouvelle adresse ou devra pointé le pointeur p ^^, sinn i m fait tjr la mm erreur:(
0
rocksider Messages postés 107 Statut Membre 9
 
merci kilian, tous marche nickel ,^^
0