Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink
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 ! tongue).
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