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 :

que fait ce programme?


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut que fait ce programme?
    pour un examen on a eu la question suivante:

    que fait ce programme c?

    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>
    #include <stdlib.h>
    main()
    {
    int i=3;
    int *p;
    printf("valeur de p avant initialisation = %ld\n",p);
    p=(int*)malloc(sizeof(int));
    printf("valeur de p apres initialisation = %ld\n",p);
    *p=i;
    printf("valeur de *p=%d\n", *p);
    }
    quelqu'un peut m'aider s'il vous plait??

    merci

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par minen
    pour un examen on a eu la question suivante:

    que fait ce programme c?
    Nice try...

    Met tes commentaires, et on les corrigera.

    (y'en a qui doutent de rien. Il faut cesser de nous prendre pour des idiots, OK ?)

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    (y'en a qui doutent de rien. Il faut cesser de nous prendre pour des idiots, OK ?)
    je suis desolée je ne comprends vraiment pas ce que vous voulez dire

    si j'avais trouvé une solution je ne serais pas là a vous casser la tete avec mon programme

    pour mon exercice j'ai laissé vide je l'ai pas fait

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Juste une question bête.

    Pourquoi tu compiles pas ton merveilleux code et tu l'executes non ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    j'ai essayé de le compiler deja mais ça n'a pas marché la compilation ne s'est pas bien terminé j'ai eu une erreur qui dit Unable to make output file c

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par minen
    si j'avais trouvé une solution je ne serais pas là a vous casser la tete avec mon programme
    Tu n'as vraiment aucune idée de ce que ça peut faire ? Tu dormais pendant le cours de C ou quoi ?

    Prend les lignes une par une et essaye de les commenter. C'est à toi de faire le travail. On te corrigera ou te guidera si nécessaire, mais on ne fera pas le travail à ta place.

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par minen
    j'ai essayé de le compiler deja mais ça n'a pas marché la compilation ne s'est pas bien terminé j'ai eu une erreur qui dit Unable to make output file c
    Ce code est loin d'être parfait, mais il compile à peu près et s'exécute tant bien que mal...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    valeur de p avant initialisation = 16384
    valeur de p apres initialisation = 4007040
    valeur de *p=3
     
    Press ENTER to continue.

  8. #8
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <stdio.h>
    #include <stdlib.h>
    main()
    {
    int i=3;   /* i une variable de type entier initialisé a 3*/
    int *p;  /* pointeur sur entiers */
    printf("valeur de p avant initialisation = %ld\n",p); /*afficher la valeur de p avant intialisation*/
    p=(int*)malloc(sizeof(int)); /*allocation de memoire avec malloc qui retourne un pointeur */
    printf("valeur de p apres initialisation = %ld\n",p); /*afficher p apres initialisation*/
    *p=i;
    printf("valeur de *p=%d\n", *p);
    }
    je commence deja a comprendre que c'est des allocations d'espace memoire

  9. #9
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par minen
    je commence deja a comprendre que c'est des allocations d'espace memoire
    Je conseille de mettre les commentaires au-dessus de la ligne à commenter et de (bouton )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    #include <stdio.h>
    #include <stdlib.h>
    main()
    {
       /* i une variable de type entier initialisé a 3 
           -ed- OK */
       int i=3; 
     
       /* pointeur sur entiers 
          -ed- OK, mais on peut préciser 'non initialisé', 
                 ce qui est une source d'ennuis pour un pointeur...  */
       int *p; 
     
       /* afficher la valeur de p avant intialisation 
           -ed- OK, mais on peut préciser que la valeur étant indéfinie, le comportement est indéfini (la valeur ne peut pas être vérifiée).
       */
       printf("valeur de p avant initialisation = %ld\n",p); 
     
       /*allocation de memoire avec malloc qui retourne un pointeur 
          -ed- malloc() ne retourne pas un 'pointeur', mais une 'adresse'. 
          D'autre part, il serait intéressant de commenter la taille allouée
          et de monter à quoi elle correspond...
       */
       p=(int*)malloc(sizeof(int)); 
     
       /*afficher p apres initialisation
          -ed- OK
       */
       printf("valeur de p apres initialisation = %ld\n",p); 
     
       /* -ed- pas d'idee ? si p est un pointeur, que représente *p ? */
       *p=i;
       printf("valeur de *p=%d\n", *p);
    }
    Tu vois que si tu réfléchis 2 minutes, tu arrives à sortir quelque chose... pour ce qui manque, relis ton cours...

  10. #10
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /* -ed- pas d'idee ? si p est un pointeur, que représente *p ? */
       *p=i;
    *p serait l'objet pointé une variable de type entier et qui prendra la valeur de i.

    je crois que j'ai compris ça j'ai compris chaque ligne du code

    on a crée un pointeur sur un entier on a alloué de l'espace memoire puis on fait *p=i, au final on obtient *p=3 affiché sur l'ecran.

    je vous remerci

  11. #11
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par minen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /* -ed- pas d'idee ? si p est un pointeur, que représente *p ? */
       *p=i;
    *p serait l'objet pointé une variable de type entier et qui prendra la valeur de i.

    Oui (évite ça : "" c'est très impoli, chez moi, c'est une claque). C'est un entier, mais il faut préciser "de type int") (il y a des entiers de type char, short, long, unsigned int etc.)
    on a crée un pointeur sur un entier on a alloué de l'espace mémoire puis on fait *p=i, au final on obtient *p=3 affiché sur l'ecran.
    "faire *p=i", ça s'appelle "déréférencer" le pointer.

    "on a copié la valeur de i à l'emplacement pointé par p".

  12. #12
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    est ce pour une emoticone (que j'ai mise pour me montrer plutot timide) que je deviens tout a coup tres impolie???

    vous l'avez mal interpreté

    merci encore une fois

  13. #13
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par minen
    est ce pour une emoticone (que j'ai mise pour me montrer plutot timide) que je deviens tout a coup tres impolie???

    vous l'avez mal interpreté

    merci encore une fois
    , c'est pas timide, c'est 'insolent' (lever les yeux au ciel).
    timide, y'a pas. Ce qui se rapproche le plus, c'est

  14. #14
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380

  15. #15
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    je vais m'arranger pour ne plus jamais mettre d'emoticone

    a la fin ce ne sont que des images je ne voulais certainnement pas etre insolente envers vous ce qui me parait totalement deplacé de se montrer impoli avec quelqu'un qui essaye de nous aider de toute maniere je suis vraiment desolée

  16. #16
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par minen
    je vais m'arranger pour ne plus jamais mettre d'emoticone

    a la fin ce ne sont que des images je ne voulais certainnement pas etre insolente envers vous ce qui me parait totalement deplacé de se montrer impoli avec quelqu'un qui essaye de nous aider de toute maniere je suis vraiment desolée
    OK.

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

Discussions similaires

  1. Que fait ce programme ( les structures?)
    Par autoin dans le forum Débuter
    Réponses: 4
    Dernier message: 04/04/2008, 21h36
  2. que fait ce programme java?
    Par freemasons dans le forum Langage
    Réponses: 5
    Dernier message: 17/01/2008, 16h45
  3. Que fait ce programme ?
    Par lebossejames dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/03/2007, 05h32
  4. Que fait ce programme de matrices ?
    Par Premium dans le forum C
    Réponses: 10
    Dernier message: 28/07/2006, 23h00
  5. Que fait ce programme ?
    Par babar56 dans le forum C
    Réponses: 32
    Dernier message: 16/01/2006, 21h31

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