J'ai un probleme de compilation

out49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
out49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -
salut a tous...
j'ai un probleme de compilation et j'ai besoin d'aide. je suis debutant,et j'utilise CODE BLOCK sous WINDOWS-7
quand j'essaye de compiler mon code,le compilateur m'ecrit :
 undefined reference to  ''mafonction"  
et surtout qu'il a ecrit cette erreur plus de 4 fois pour tout mes fonctions que j'essaye d'utiliser.
svp aidez-moi

3 réponses

obsidien71 Messages postés 196 Date d'inscription   Statut Membre Dernière intervention   3
 
J'ai fait un truc vite fait avec le 1er bout de code que tu m'as passé :

#include <stdio.h>
#include <stdlib.h>
#define NB_ETUDIANT 2
 //Les defines toujours en maj ( bonne pratique )

typedef struct etudiant {
    int numero;
    char nom[50];
    char prenom[50];
} etd;

void saisir_etudiant(etd *pp);

void saisir_uneclasse(etd CLA[ ], int nb);

void afficher_uneclasse( etd CLA[ ], int nb);

int main(){ 
    etd *test = malloc(NB_ETUDIANT*sizeof(etd)); //NE JAMAIS CREER DE POINTEUR SAUVAGES OU AU MOINS METTRE = NULL;
    
    saisir_uneclasse(test, NB_ETUDIANT);
    afficher_uneclasse(test, NB_ETUDIANT);
    
    
    return 0;
}
 
void saisir_etudiant( etd *pp){
    printf("nom : ");
    scanf( "%s", pp->nom); // nom est un pointeur ( tableau )
    printf("numero : ");
    
    scanf("%d",&(pp->numero)); //attention numéro n'est pas un pointeur
}

void saisir_uneclasse(etd CLA[ ], int nb){
    int i;
    for (i=0; i< nb; i++){
        printf ("saisie n°%d\n", i);
        saisir_etudiant(&CLA[i]);
    }
}

void afficher_uneclasse (etd CLA[ ], int nb){
    int i;
    printf("affichage\n");

    for(i=0; i< nb; i++){
        printf("Saisie n°%d : \t%d\t%s\t%s\n",i, CLA[i].numero, CLA[i].nom,CLA[i].prenom);
    }

}
1
obsidien71 Messages postés 196 Date d'inscription   Statut Membre Dernière intervention   3
 
on peut remplacer :
etd *test = malloc(NB_ETUDIANT*sizeof(etd));
par :
etd test[NB_ETUDIANT]; (dans ce cas le #include <stdlib.h> est inutile
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
@obsidien71, quand tu postes du code, stp, utilise la coloration syntaxique du forum.

https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

en plus d'ajouter des couleurs, cela sert à préserver l'indentation de ton code qui, autrement, est écrasée par l'interprétation du html par le navigateur

@out49 : ce n'est pas plus simple de faire un copier-coller de ton code, plutôt que de tout recopier à la main ?
0
out49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > [Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention  
 
oui Dal,je me connecte avec mon telephone alors que mon code est sur mon ordi. c'est pourquoi.. et merci maintenant j'essaye de mieux comprendre le fonctionnement du forum et les balises grace a vous merci
0
out49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > obsidien71 Messages postés 196 Date d'inscription   Statut Membre Dernière intervention  
 
et Hop la premiere partie de mon code est bon...merci obsidien71 merci beaucoup,tu me sauve vraiment merci
0
obsidien71 Messages postés 196 Date d'inscription   Statut Membre Dernière intervention   3 > [Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention  
 
Les balises de code ? c'est quoi ça ? ^^ j'avais pas trop le temps :D
0
obsidien71 Messages postés 196 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour, le code s'il te plait ?
0
obsidien71 Messages postés 196 Date d'inscription   Statut Membre Dernière intervention   3
 
#include <stdio.h>

void fonction(); // Si ta fonction est dans ce fichier tu dois la déclarer avant le main ou la mettre ici

int main(){
fonction();

return 0;
}

void fonction(){
printf("YOLO\n");
}
0
out49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
ok voici mon code,dsolé j recopiais mot par mot comme on peut faire foto d'ecran.

 

#include<stdio.h>
#define nbrEtudiant 10


struct etudiant { int numero; char nom[50];prenom[50];};
typedef struct etudiant etd;

void saisir_etudiant( struct etudiant *pp);

"void" saisir_uneclasse(etd CLA[ ], int nb);

void afficher_uneclasse( etd CLA[ ], int nb);

//DECLARATION DE MES FNCTIONS AVANT LE "MAIN"


int main()
{ //j'ai un bout de code que j'ai voulu introduire une fois fini avec ce probleme,car je copie mot par mot sur mon portable,mon code est sur mon ordi.


return 0;}


void saisir_etudiant( struct etudiant *pp)

{ printf("nom\n");
scanf( "%s", pp-> nom);
printf(" numero \n");
scanf("%d",pp-> numero);
}


"void" saisir_uneclasse(etd CLA[ ], int nb)
{
int i;
printf ("saisie");
for (i=0; i< nb; i++)
{ saisir_etudiant(&CLA[i]); }
}

void afficher_uneclasse (etd CLA[ ], int nb)

{
int i;
printf("affichage");
printf(" %d ............ %s................. %s","numero","nom","prenom");

for(i=0; i< nb; i++)

{
printf("%d ........%s............%s", CLA[i].numero, CLA[i].nom,CLA[i].prenom);
}

}

ok voici mon code,dsolé j recopiais mot par mot comme on peut faire foto d'ecran.


 

#include<stdio.h>
#define nbrEtudiant 10


struct etudiant { int numero; char nom[50];prenom[50];};
typedef struct etudiant etd;

void saisir_etudiant( struct etudiant *pp);

"void" saisir_uneclasse(etd CLA[ ], int nb);

void afficher_uneclasse( etd CLA[ ], int nb);

//DECLARATION DE MES FNCTIONS AVANT LE "MAIN"


int main()
{ //j'ai un bout de code que j'ai voulu introduire une fois fini avec ce probleme,car je copie mot par mot sur mon portable,mon code est sur mon ordi.


return 0;}


void saisir_etudiant( struct etudiant *pp)

{ printf("nom\n");
scanf( "%s", pp-> nom);
printf(" numero \n");
scanf("%d",pp-> numero);
}


"void" saisir_uneclasse(etd CLA[ ], int nb)
{
int i;
printf ("saisie");
for (i=0; i< nb; i++)
{ saisir_etudiant(&CLA[i]); }
}

void afficher_uneclasse (etd CLA[ ], int nb)

{
int i;
printf("affichage");
printf(" %d ............ %s................. %s","numero","nom","prenom");

for(i=0; i< nb; i++)

{
printf("%d ........%s............%s", CLA[i].numero, CLA[i].nom,CLA[i].prenom);
}

}

0
obsidien71 Messages postés 196 Date d'inscription   Statut Membre Dernière intervention   3 > out49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
les "void" c'est normal ? ou une erreur de recopie ?
0
out49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > obsidien71 Messages postés 196 Date d'inscription   Statut Membre Dernière intervention  
 
dslé c'est une erreur de copie...
0
out49 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > obsidien71 Messages postés 196 Date d'inscription   Statut Membre Dernière intervention  
 
tout d'abord je veux saisir les information d'un etudiant,ensuite j'ai voulu fair une fonction qui permet de saisir une classe,et qu'elle affiche les informations données d'une classe
0