Signification d'un warning [C]
---vivi---
Messages postés
83
Statut
Membre
-
Nabla's Messages postés 18201 Date d'inscription Statut Contributeur Dernière intervention -
Nabla's Messages postés 18201 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, je voudrais savoir ce que signifie ce warning ci :main.c|107|warning: assignment makes integer from pointer without a cast|
je n'arrive pas à bien le traduire.
Merci d'avance.
je n'arrive pas à bien le traduire.
Merci d'avance.
Configuration: Windows XP Firefox 3.0.7
4 réponses
-
ca veut dire que sur la ligne 107, tu as oublié une * pour acceder a un pointeur
-> tu vas lire l'adresse mémoire, au lieu de lire le contenu de l'adresse .... voila
assignment makes integer from pointer without a cast : l'assignement de la valeur crée un entier depuis un pointeur, mais vous n'avez pas precisé explicitement que vous etiez conscient de ce que vous faites....
donc, si c'est bien l'adresse que tu veux, et pas son contenu (je pense pas, mais je te dis comment faire disparaitre le warning): rajoute un (int) devant la variable qui est a droite de la parenthere
sinon, ajoutes un * a droite de la parenthèse
copies la ligne 107 ici -
Merci, voici la ligne 107 : carte[i][j] = ecran;
et voici la déclaration de la variable: int carte[NB_BLOCS_LARGEUR][NB_BLOCS_HAUTEUR] = {};
NB_BLOCS_LARGEUR et NB_BLOCS_HAUTEUR sont des defines -
oui en effet ecran est un pointeur (j'utilise la SDL) je te met sa déclaration: SDL_Surface *ecran = NULL;
voici le prototype (car carte est dans une autre fonction que ecran): void jouer (SDL_Surface *ecran);
est ce qu'un warning comme celui la peut faire planter mon programme? -
ben non, ca fera pas planter sur cette ligne, mais pourquoi tu enregistres cette adresse? dans un tableau en plus ? ca ne servira a rien, et quand tu essayera d'utiliser cette valeur, la : soit tu aura des données qui ne voudrons rien dire, soit ca plantera