no save
Assistance
Achat
News

Forum | programmation
[langage C] segmentation fault
tafiscobar, le ven. 22 sept. 2006 à 10:26:54
salut, tout d'abord s2 est un pointeur sur un const char. Donc sizeof s2 te donne la taille du pointeur ie 4octets et non la taille de ta chaine (si c'est vrai, le compilateur n'est pas normé iso, ce n'est pas le comportement de sizeof sinon il n'y aurait pas de strlen).

Ensuite, si tu alloues de la mémoire dans la fonction my_strcpy, ben malloc te retourne un pointeur local et donc quand tu sors de ta fonction, ton pointeur local est perdu et donc d'ou le segmentation fault. Le malloc est fait par l'utilisateur et non dans la fonction strcpy.

Ensuite strcpy retourne le pointeur sur un char ie char* et non un char. Ta fonction devrait etre:

char*
my_strcpy (char* dest, const char* src) {
int i;
for (i = 0; src[i]!='\0'; ++i)
dest[i] = src[i];
dest[i] = '\0';
return dest;
}

PrécédentBenja85
sept. 06
Benja85
sept. 06
Suivant
REPONSES
Char Snipeur
sept. 06
Benja85
sept. 06
carkiasis
sept. 06
Char Snipeur
sept. 06
Char Snipeur
sept. 06
Benja85
sept. 06
tafiscobar
sept. 06
Benja85
sept. 06
mamiemando
sept. 06
arth
sept. 06
Version Web
Réalisé par RedShift
no save