• # Sacré bazar

    Posté par . En réponse au message remplir une chaine de int *. Évalué à 3.

    A mon avis, l'erreur est dans la comparaison *tmp!='0円'. *tmp est un int, mais '0円' est un char, à vue de nez, il doit faire une comparaison de chars au lieu d'ints.

    Evite les casts implicites, et essaie avec while(*tmp!=0).

    P.S. : Il n'y aurait pas un autre bogue dans le malloc? Je ne vois pas la raison de l'étoile dans sizeof(unsigned int *).

    Ah, il y a aussi un bogue dangereux dans ta gestion de la mémoire. Il fait effectivement que tu rajoutes un int nul en fin de chaîne, car rien ne garantit que les valeurs qui suivent soient nulles (et donc il faut allouer un espace de plus). Et tu as raison de l'initialiser toi-même à 0, car malloc() n'initialise pas obligatoirement la mémoire. Mais initialise-le donc avec un vrai 0, et non '0円'...

    Ah, et au fait, tu es sûr d'avoir besoin d'une chaine d'ints, et pas de chars? C'est plus courant, tout de même...