7
votes

L'affectation rend le pointeur d'entier sans une coulée et d'autres questions

Je viens de commencer à apprendre C quelques jours et j'ai un peu de difficultés avec des indicateurs. J'essaie de convertir une chaîne en un éventail d'entiers. Le petit snipet ci-dessous semble travailler mais je reçois un avertissement:

en fonction 'Chartoint32' AVERTISSEMENT: l'affectation rend le pointeur de l'entier sans couler [activé par défaut] | || === Construction terminée: 0 erreurs, 1 avertissements (0 minutes, 0 secondes) === | p>

L'avertissement provient de la ligne p>

printf("%u ", (unsigned int) int32result[i])


1 commentaires

4 Réponses :


8
votes
charToInt32(clearText, &int32result[0]);

0 commentaires

2
votes

vous déclarez graphoint32 pour prendre un pointeur à pointeur-to- non signé int comme argument, xxx

mais vous Utilisez l'argument comme une matrice de non signé INT , de sorte que l'argument doit être xxx

ou équivalent (dans une déclaration de fonction !! PAS en général) xxx

et dans principal , il doit être xxx

là, vous avez également un niveau des pointeurs trop nombreux.


0 commentaires

0
votes
unsigned int * int32result[] 
is an array of unsigned int pointers, so you are assigning the value to a pointer.

0 commentaires

1
votes

L'avertissement que vous obtenez provient du fait que vous avez lié la valeur d'une valeur entière à un pointeur.

/* int32result is an array of POINTERS */
unsigned int * int32result[];
/* But returnedInteger is an int */
unsigned int returnedInteger = 0;
/*...*/
/* int32result[pos] is a pointer to an integer ...
 * Thus here, you assign a "pure" integer to a pointer,
 * hence the warning */
int32result[pos] = returnedInteger;


0 commentaires