#1 Le 06/08/2010, à 20:47
- Klezmai
.C petit probleme de pointeur avec VIM
Bonjour,
Je suis entrain d'apprendre le C sur VIM (oui je suis maso) avec le tutoriel du SDZ et je suis tomber sur une petite bizzarerie : quand je fait un %d sur un poiteur (comme ceci ---->):
int age = 20;
int *pointeurSurAge = &age;
printf("%d", pointeurSurAge);
a la compil j'obtien inevitablement ce message d'erreur :
test.tableau.c:9: warning: format `%d' expects type `int', but argument 2 has type `int *'
Alors qu'avec Code;Block tout fonctionne a merveille
bon jai pus remedier a la situation comme ceci
int age = 20;
int *pointeurSurAge = &age;
printf("\n%p\n", pointeurSurAge);
mais jaime bien suivre les tutoriel a la lettre (juste pour eviter de prendre des habitudes qui pourrait me causer des problemes dans le futur)
donc je me demandait si il y avait une solution pour utiliser %d avec VIM (ou si le probleme venait de gcc) ou si jetais vouer a faire des %p pour connaitre les adresse des valeur pointee
je vous remercie d'avance
Hors ligne
#2 Le 06/08/2010, à 21:08
- jpages
Re : .C petit probleme de pointeur avec VIM
En compilant avec GCC, j'obtiens le même avertissement.
En plus, %d et %p n'affichent pas le résultat sous le même format.
(adresse en hexadécimal pour %p).
"Notre liberté se bâtit sur ce qu'autrui ignore de nos existences." (Alexandre Soljénitsyne)
Hors ligne
#3 Le 06/08/2010, à 21:24
- Klezmai
Re : .C petit probleme de pointeur avec VIM
et tas pas une petite idee d'ou sa pourrait provenir ??
Hors ligne
#4 Le 06/08/2010, à 22:08
- rniamo
Re : .C petit probleme de pointeur avec VIM
coed block active -Wall par défaut ?
l'erreur devrait y appraître donc ton projet est mal configuré
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#5 Le 06/08/2010, à 23:48
- toto2006
Re : .C petit probleme de pointeur avec VIM
a la compil j'obtien inevitablement ce message d'erreur :
test.tableau.c:9: warning: format `%d' expects type `int', but argument 2 has type `int *'
c'est pas une erreur au sens propre mais un avertissement comme son nom l'indique .
cela t'indique que printf avec le format %d (int) attend un int et pas un int* .
printf("%d\n",(int) pointeurSurAge);
Hors ligne
#6 Le 07/08/2010, à 00:30
- AuraHxC
Re : .C petit probleme de pointeur avec VIM
C'est pas une erreur de Vim c'est juste que ton compilateur doit avoir -Wall et donc il te signal juste que ce que tu fais n'est pas très très bien
D'ailleurs j'ai été voir sur SdZ et tu vois après
int age = 10;
int *pointeurSurAge = &age;
printf("%d", *pointeurSurAge);
Il devrait d'un coup plus avoir l'erreur car c'est légèrement plus mieux bien comme disent les jeunes.
PS : La preuve rapidement :
0:32 nicolas@nicolas-desktop ~/Bureau% gcc -Wall test_pointeur.c -o test_pointeur
0:32 nicolas@nicolas-desktop ~/Bureau% ./test_pointeur
10
Dernière modification par AuraHxC (Le 07/08/2010, à 00:33)
Hors ligne
#7 Le 07/08/2010, à 00:42
- toto2006
Re : .C petit probleme de pointeur avec VIM
donc je me demandait si il y avait une solution pour utiliser %d avec VIM (ou si le probleme venait de gcc) ou si jetais vouer a faire des %p pour connaitre les adresse des valeur pointee
visiblement il cherche a afficher l'adresse pas la valeur .
Hors ligne
#8 Le 11/08/2010, à 09:17
- T_i_t_i
Re : .C petit probleme de pointeur avec VIM
Le "problème" (si ça en est un) est lié à gcc, qui est assez exigent (je l'aime ! ).
Ce code va marcher avec le compilateur de Visual C++. (Du moins je ne me rappelles pas avoir eu des erreurs avec ces histoires de %d et %p pour afficher les adresses avec != formats... Le compilo de Visual est plus laxiste.).
Dernière modification par T_i_t_i (Le 11/08/2010, à 09:17)
Ubuntu 10.04 / GNOME
(wmii),c'est bien, (uzbl),aussi (merci helly ^^)
Hors ligne