Allocation memoire et fonction .....

Résolu
rocksider Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   -  
rocksider Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   -
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;
}
A voir également:

3 réponses

kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   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 106 Date d'inscription   Statut Membre Dernière intervention   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 106 Date d'inscription   Statut Membre Dernière intervention   9
 
merci kilian, tous marche nickel ,^^
0