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 ?
Pourquoi, int ?
strchr retourne un char*, soit une adresse, non un entier.
"iPosDeuxPoints" doit être de type char* aussi.
La suite plus tard...