Problème core dumped sur pointeur de char

Problème core dumped sur pointeur de char - C - Programmation

Marsh Posté le 14-09-2011 à 16:15:07    

Bonjour à tous,
 
Voilà mon problème que j'ai résolu mais dont je ne comprends pas l'origine.
 
J'ai une fonction qui prend en paramètre un int (int myInt) et 3 pointeurs de char (appelés char *pt1, char *pt2, char *pt3).
Le but de la fonction étant de faire une recherche de la variable pointé par pt2 (par dichotomie) dans la liste pointée par pt1 .
sachant que chaque composant de la liste pointée par pt1 est constitué de 2 éléments.
 
Une fois la valeur pointée par pt2 trouvée dans pt1, on fait donc pointer pt3 vers le 2eme éléments de la liste en utilisant la fonction strncpy.
 
Le problème était que lors de la copie vers pt3 j'avais un core dumped.
 
Après recherche (ayant déjà rencontré un problème identique auparavant), je me suis apperçu au début de la fonction que le pointeur pt3 était initialisé à NULL.
C'est cette initialisation qui pose problème puisqu'après l'avoir supprimé je n'ai plus de core dumped et le traitement se termine parfaitement bien.
 
 
Ma question est donc : pourquoi l'initialisation du pointeur à NULL en début de fonction pose problème sous Linux red hat 5 alors que ça ne posait aucun problème sous Unix tru64 ?
 
Merci d'avance pour votre aide
 
 

Reply

Marsh Posté le 14-09-2011 à 16:15:07   

Reply

Marsh Posté le 14-09-2011 à 16:59:52    

Citation :

Une fois la valeur pointée par pt2 trouvée dans pt1, on fait donc pointer pt3 vers le 2eme éléments de la liste en utilisant la fonction strncpy.

[:louloup2]  [:louloup2]  [:louloup2]  

Citation :

Le problème était que lors de la copie vers pt3 j'avais un core dumped.

Ce qui est tout a fait normal si la taille correcte pour la copie (cas de valeur NULL du pointeur par exemple) n'a pas été allouée avant copie.  
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 14-09-2011 à 17:59:29    

gilou a écrit :

Citation :

Une fois la valeur pointée par pt2 trouvée dans pt1, on fait donc pointer pt3 vers le 2eme éléments de la liste en utilisant la fonction strncpy.

[:louloup2]  [:louloup2]  [:louloup2]  
 
lol j'ai essayé d'être le plus clair possible, apparemment ça n'était pas suffisant.
 

Citation :

Le problème était que lors de la copie vers pt3 j'avais un core dumped.

Ce qui est tout a fait normal si la taille correcte pour la copie (cas de valeur NULL du pointeur par exemple) n'a pas été allouée avant copie.  
 
A+,


 
Ok, mais pourquoi ça marche sous True64 ?

Reply

Marsh Posté le 14-09-2011 à 19:29:19    

Par hasard, probablement, mais sans voir le code, je ne peux être plus précis.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed