| denzz a écrit : 
 
 
 | Code : 
 ptcFam = (char*) malloc(sizeof(la_taille_qui_va_bien));
 | 
 
 | 
 
Le cast est inutile. Et "sizeof" permet de déterminer le nombre de bytes pour un type particulier :
 
| Code : 
 ptcFam = malloc( la_taille_qui_va_bien * sizeof *ptcFam);
 | 
(en espérant que "la_taille_qui_va_bien" corresponde à la taille de ce que tu dois copier + le caractère null de fin de chaîne)
 
| denzz a écrit : 
 
 
 | Code : 
 //s'il fallait que j'alloue, pk mon 1er strcpy ne pose aucun pb ??
 | 
 
 | 
 
Coup de bol.  
Le propre des opérations foireuses en mémoire, c'est que le comportement est aléatoire.
Ca passe ou ça casse. Là, c'est passé. Demain, ça aurait peut-être cassé.
 
 
| denzz a écrit : 
 
 
 | Code : 
 // --> je suppute que strnpcy = copie de la val du pointeur et ajout de '\0' à la taille voulue mais on m'a dit que non pas du tout ??
 | 
 
 | 
 
N'écoute plus "on" :
| Citation : 
 
 strcpy(), strncpy(), strlcpy()
The strcpy() function copies string s2 to s1, including  the
 terminating  null character, stopping after the null charac-
 ter has been copied. The strncpy() function copies exactly n
 bytes,  truncating  s2  or  adding  null characters to s1 if
 necessary. The result will not  be  null-terminated  if  the
 length of s2 is n or more.  Each function returns s1.
 
 
 | 
 
 
 
int ? ![[:mlc] [:mlc]](https://forum-images.hardware.fr/images/perso/mlc.gif) 
Pourquoi, int ?
strchr retourne un char*, soit une adresse, non un entier.
"iPosDeuxPoints" doit être de type char* aussi.
 
La suite plus tard...