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])
4 Réponses :
charToInt32(clearText, &int32result[0]);
vous déclarez mais vous Utilisez l'argument comme une matrice de ou équivalent (dans une déclaration de fonction !! PAS en général) p> et dans là, vous avez également un niveau des pointeurs trop nombreux. p> p> graphoint32 code> pour prendre un pointeur à pointeur-to-
non signé int code> comme argument,
non signé INT code>, de sorte que l'argument doit être p>
principal code>, il doit être p>
unsigned int * int32result[] is an array of unsigned int pointers, so you are assigning the value to a pointer.
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;
Dupliqué possible de affectation rend le pointeur de l'entier sans casse