langage C structure

Venez poser vos question et proposer vos codes ici.

Moderators: Animateurs, Responsables

Post Reply
User avatar
fater gel
Testeur
Testeur
Posts: 186
Joined: Mon 26 Oct 2009 08:37

langage C structure

Post by fater gel » Thu 16 Sep 2010 20:10

salut j'apprends ( pas mal de truc ) le langage C et les structures ....ben .... comprends pas pourquoi ça beug
alors voilà le code en espérant que vous puissiez m'aidez :

dans main.c:

Code: Select all

#include <stdio.h>
#include <stdlib.h>
#include "main.h"

int main()
{
    coordonnees point = 0;

    printf(" x = %d", x);

    return 0;
}


et dans le main.h

Code: Select all

typedef coordonnees coordonnees
struct coordonnees
{
    int x;
    int y;
};


merci de répondre

User avatar
bulton
Directeur développement
Directeur développement
Posts: 2102
Joined: Sat 13 Oct 2007 16:50
Location: Dans le serveur oO
Contact:

Re: langage C structure

Post by bulton » Thu 16 Sep 2010 20:48

Quand tu cherches à compiler ton code, il doit te retourner une erreur qui devrait t'orienter pour trouver d'où ça vient déjà ;)

Pour le reste, je suis pas spécialisé C et j'en fais rarement donc je pourrais pas trop te renseigner malheureusement.
Chef de projet et développeur pour Gatewars.eu v3.
Vive la famille souris !!! (I'm little mouse)

@bulton_fr - www.bulton.fr - @gatewars_eu

User avatar
fater gel
Testeur
Testeur
Posts: 186
Joined: Mon 26 Oct 2009 08:37

Re: langage C structure

Post by fater gel » Thu 16 Sep 2010 20:58

oui il me dit que c'est la première fois que "x" apparait dans le code !

User avatar
dremecker
Leader
Leader
Posts: 4542
Joined: Sat 23 Jun 2007 13:51
Location: Juste deriere toi! :p
Contact:

Re: langage C structure

Post by dremecker » Fri 17 Sep 2010 11:47

Sans doute parce que :
Les .h : appelés fichiers headers. Ces fichiers contiennent les prototypes des fonctions.

Sources : SDZ (que je te conseil de lire)


Or ton .h ne contient pas de prototype de fonction mais une structure de données que tu n'appelles pas.
Que donne "point.x" au lieux de "x" dans le printf ?


Ps : Ca fais lontemps que je n'ai pas codé en c... je ne me souviens plus de tout les détails :wink:
:twisted: DMK :twisted:

Image

User avatar
wingzero
Nouveau
Posts: 1
Joined: Wed 6 Oct 2010 02:06
Location: Montréal, Québec!

Re: langage C structure

Post by wingzero » Wed 6 Oct 2010 02:25

fater gel wrote:salut j'apprends ( pas mal de truc ) le langage C et les structures ....ben .... comprends pas pourquoi ça beug
alors voilà le code en espérant que vous puissiez m'aidez :

dans main.c:

Code: Select all

#include <stdio.h>
#include <stdlib.h>
#include "main.h"

int main()
{
    coordonnees point = 0;

    printf(" x = %d", x);

    return 0;
}


et dans le main.h

Code: Select all

typedef coordonnees coordonnees
struct coordonnees
{
    int x;
    int y;
};


merci de répondre


Salut, c'est bien d'apprendre le C! Continu :D

PS.:Mieux vaut de ne pas faire de main.h

voici une des bonnes manières de faire ce code:

Code: Select all

#include <stdio.h>
#include <stdlib.h>

// tu avais oublié le struct, et mieux vaut donner deux noms différents
// et un point virgule.
typedef struct _coordonnees Coordonnees;

struct _coordonnees {
    int x;
    int y;
};

int main()
{
   // réservation de l'espace mémoire de la taille de la structure, très important.
   // coor devient un pointeur vers la structure
    Coordonnees* coor = malloc( sizeof(Coordonnees) );

    coor->x = 3;    // donner une valeur a x
    coor->y = 5;    // donner une valeur a y

    // affichage, on doit aller chercher la valeur de x pointé par coor (coor->x).
    printf( "Les coordonnees du point sont: (%d, %d).\n", coor->x, coor->y );

    // libération de la mémoire (recommandé)
    free( coor );
    return 0;
}


Ce code affiche:

Les coordonnees du point sont: (3, 5).

Bon, il y a plusieurs façons différentes de coder ce genre de problèmes, mais je peux dire que celle-ci en est une très bonne ;)

Post Reply