Quote:
3) le programme plante au premier tour de boucle quand i = 0, les print le confirment
Pour l'indice correct ou pas, je ne sais pas. Comme je t'ai dit, je l'ai dit au pif, voyant le message de corruption de pile, très symptômatique du problème.
Si ça plante au premier tour, c'est qu'un pointeur ne pointe pas où il doit. Ce qui ne veut pas dire que plus loin d'autres erreurs ne t'attendent pas.
Quote:
le return d'une variable globale est TRES moche je suis d'accord
Au delà d'être moche, c'est une faute.
Quote:
char *truc = "frgdr" ca equivaut bien à un calloc(5, sizeof(char)) avec remplissage du tableau, non ?
Et bien non pas du tout. Pas de calloc ici. Les octets frgdr sont empilés dans la pile et truc est initialisé pour pointer dessus. Au retour de la fonction la pile est détruite et les octcts frdrg aussi, et le pointeur continue de pointer au même endroit, c'est à dire n'importe quoi.
On est en C, pas en Java ;)
Quote:
4) et pour ton plaisir uniquement: oui je faisais du java avant ca
Ce n'est pas vraiment mon plaisir, bien au contraire. Je pense que quand on enseigne (ou demande de pratiquer ) Java avant C, on commet un crime contre l'humanité informatique.
Et le "return" dans ton code dit bien ce qu'il veut dire: tu as été enduit d'erreur à l'insu de ton plein gré. :(
Pour l'indice correct ou pas, je ne sais pas. Comme je t'ai dit, je l'ai dit au pif, voyant le message de corruption de pile, très symptômatique du problème.
Si ça plante au premier tour, c'est qu'un pointeur ne pointe pas où il doit. Ce qui ne veut pas dire que plus loin d'autres erreurs ne t'attendent pas.
Au delà d'être moche, c'est une faute.
Et bien non pas du tout. Pas de calloc ici. Les octets frgdr sont empilés dans la pile et truc est initialisé pour pointer dessus. Au retour de la fonction la pile est détruite et les octcts frdrg aussi, et le pointeur continue de pointer au même endroit, c'est à dire n'importe quoi.
On est en C, pas en Java ;)
Ce n'est pas vraiment mon plaisir, bien au contraire. Je pense que quand on enseigne (ou demande de pratiquer ) Java avant C, on commet un crime contre l'humanité informatique.
Et le "return" dans ton code dit bien ce qu'il veut dire: tu as été enduit d'erreur à l'insu de ton plein gré. :(