J'ai un probleme de compilation

Fermé
out49 Messages postés 20 Date d'inscription mardi 17 octobre 2017 Statut Membre Dernière intervention 21 octobre 2017 - 19 oct. 2017 à 17:03
out49 Messages postés 20 Date d'inscription mardi 17 octobre 2017 Statut Membre Dernière intervention 21 octobre 2017 - 20 oct. 2017 à 00:35
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 194 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 19 octobre 2017 3
Modifié le 19 oct. 2017 à 19:02
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 194 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 19 octobre 2017 3
19 oct. 2017 à 18:24
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 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 19 oct. 2017 à 18:46
@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 mardi 17 octobre 2017 Statut Membre Dernière intervention 21 octobre 2017 > [Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024
19 oct. 2017 à 18:49
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 mardi 17 octobre 2017 Statut Membre Dernière intervention 21 octobre 2017 > obsidien71 Messages postés 194 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 19 octobre 2017
19 oct. 2017 à 18:56
et Hop la premiere partie de mon code est bon...merci obsidien71 merci beaucoup,tu me sauve vraiment merci
0
obsidien71 Messages postés 194 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 19 octobre 2017 3 > [Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024
19 oct. 2017 à 19:01
Les balises de code ? c'est quoi ça ? ^^ j'avais pas trop le temps :D
0
obsidien71 Messages postés 194 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 19 octobre 2017 3
19 oct. 2017 à 17:09
Bonjour, le code s'il te plait ?
0
obsidien71 Messages postés 194 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 19 octobre 2017 3
19 oct. 2017 à 17:14
#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 mardi 17 octobre 2017 Statut Membre Dernière intervention 21 octobre 2017
19 oct. 2017 à 18:02
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 194 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 19 octobre 2017 3 > out49 Messages postés 20 Date d'inscription mardi 17 octobre 2017 Statut Membre Dernière intervention 21 octobre 2017
19 oct. 2017 à 18:07
les "void" c'est normal ? ou une erreur de recopie ?
0
out49 Messages postés 20 Date d'inscription mardi 17 octobre 2017 Statut Membre Dernière intervention 21 octobre 2017 > obsidien71 Messages postés 194 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 19 octobre 2017
19 oct. 2017 à 18:10
dslé c'est une erreur de copie...
0
out49 Messages postés 20 Date d'inscription mardi 17 octobre 2017 Statut Membre Dernière intervention 21 octobre 2017 > obsidien71 Messages postés 194 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 19 octobre 2017
19 oct. 2017 à 18:17
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