IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

un ptit problème de pointeurs


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut un ptit problème de pointeurs
    Bonjour

    je viens tout juste de commencer les pointeurs ce matin, j'ai fait un minuscule code

    pour tester le truc mais je me heurte à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    abdel@ubuntu:~/dev-c/test_pointeurs$ gcc -o age age.c
    age.c: In function ‘main’:
    age.c:11: attention : assignment makes integer from pointer without a cast
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include<stdio.h>
     
    long age = 23 ;
     
    long *pointeurAge = NULL ;
     
    main()
     
    {	
     
        *pointeurAge = &age;
        printf("voici l'adresse de la variable age %p\n",&age);
        return 0 ;
    }
    en somme je voulais mettre l'adresse d'âge dans un pointeur pour ensuite l'afficher pouvez m'aider svp.
    merci d'avance.

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Salut !


    Comme ceci ca ira mieux:
    Ce que tu as fait a pour but d'affecter une valeur à l'adresse pointé par pointeurAge alors que toi tu veux affecter l'adresse de ta variable ge au pointeur.

    Si tu veux afficher l'adresse de age par le biais du pointeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("voici l'adresse de la variable age %p\n",pointeurAge);
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    merci ça va beaucoup mieux

  4. #4
    Membre expérimenté
    Profil pro
    Dev
    Inscrit en
    Décembre 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Décembre 2007
    Messages : 191
    Par défaut
    n'oublie pas de cliquer sur Résolu

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Au passage, évite de définir age et pointeurAge en global et n'oublie pas que main() doit toujours retourner un entier de type int. Cela donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include<stdio.h>
     
    int main(void)
    {	
        long age = 23 ;
        long *pointeurAge = NULL;
     
        pointeurAge = &age;
     
        printf("voici l'adresse de la variable age %p\n", (void *) pointeurAge);
        return 0 ;
    }
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  6. #6
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Citation Envoyé par abdelilah Voir le message
    Bonjour

    je viens tout juste de commencer les pointeurs ce matin

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include<stdio.h>
     
    long age = 23 ;
    long *pointeurAge = NULL ;
    en somme je voulais mettre l'adresse d'âge dans un pointeur pour ensuite l'afficher pouvez m'aider svp.
    merci d'avance.
    Si vous débutez, il y a quelques trucs qui peuvent vous être utiles. Tout d'abord, même si on peut discuter le vocabulaire, il faut bien avoir en tête qu'un "pointeur" est une variable (ou un type dans certaines phrases).
    En particulier, une variable a une adresse (le résultat de l'opérateur &), mais il n'y a pas un unique pointeur qui lui serait lié.
    Il n'y a pas si longtemps j'étais débutant en C et j'ai un peu bagarré avec cette notion de pointeur. Il y aurait beaucoup à écrire, mais juste un détail: on écrit au choix:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char *var = NULL;  /* 1 */
    char* var = NULL;  /* 2 */
    char * var = NULL; /* 3 */
    La forme 1 est la plus répandue, peut-être pour des raisons historiques. Mais à titre personnel, la forme 2 me parle beaucoup plus. Sans aller jusqu'au typedef, déconseillé quand il s'agit de masquer un pointeur justement, je dirais en français "var est un[e variable de type] char-étoile". A ce moment-là, la forme 1 devient un mnémonique pour exprimer que *var est un char.
    C'est à vous de voir, il y a de bonnes raisons de préférer la forme 1, dont le piège classique:
    qui déclare un char* a, et deux char b et c...

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 165
    Par défaut
    merci pour vos réponse lues tardivement faute de temps , pour la forme je me sens
    plus à l'aise en utilisant la première :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char *var = NULL;  /* 1 */
    qui évite les confusion la deuxième étant à mon avis plus adéquate au tableaux (c'est ce qu'on m a en enseigné )

    grâce à vos postes je suis un peu moins bête

    merciiii

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de pointeurs..embrouillé
    Par Frenchy dans le forum C++
    Réponses: 11
    Dernier message: 10/03/2005, 16h33
  2. Problème de pointeur avec un TQuery
    Par Oluha dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/01/2005, 13h57
  3. Problème de pointeur
    Par toma_lille dans le forum C++
    Réponses: 1
    Dernier message: 07/12/2004, 21h26
  4. [MFC] Problème de pointeur !!
    Par acastor dans le forum MFC
    Réponses: 7
    Dernier message: 19/03/2004, 15h50
  5. TBitmap et problèmes de pointeurs...
    Par benj63 dans le forum C++Builder
    Réponses: 8
    Dernier message: 28/07/2003, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo