Pb structure en C

Fermé
eden_eve - 26 déc. 2007 à 18:59
 eden_eve - 27 déc. 2007 à 14:05
Bonjour,
j'ai un pb avec ma structure, j'ai un pb qd je compile societe.c
undefined reference to 'naissance'. même problème pour les autres fonctions.
J'ai vraiment besoin de votre aide.
Merci à vous

voici mon code societe.c
#include "individu.h"
#include <string.h>
#include <stdio.h>


int main() {
//printf("Entrer la taille de votre tableau", int taille)
//scanf("%
Individu * tab[taille];
char r;
printf(" A Affichage\n");
printf(" N Naissance\n");
printf(" D Deces\n");
printf(" M Mariage\n");
printf(" S Separation\n");
printf(" Q Quitter\n");
printf("Entrer votre choix:");
scanf("%c",&r);
switch(r) {
case 'N':
naissance();
break;
case 'D':
destruction();
break;
case 'M':
mariage();
break;
case 'S':
separation();
break;
case 'A':
affichage();
break;
}
scanf("%c",&r);
system("pause");
return r;

}

individu.c

#include "individu.h"
#include <stdio.h>
#include <string.h>
#define TAILLE 5

Individu * TabInd[TAILLE];

// definition de fonction affichage
void affichage(){
int i;
for(i=0;i<TAILLE;i++){
if (TabInd[i]==NULL) continue;
printf("%s\n",TabInd[i]->nom);
}
}
// rechercher un individu dans le tableau
int rechercher(char * s){
int i;
for(i=0;i<TAILLE;i++){
if (TabInd[i]==NULL) continue;

if (strcmp(s,TabInd[i]->nom)==0)
return i;
}
return -1;
}

void destruction(){
char a[64];
printf("Nom ?\n");
scanf("%s", a);

int i=rechercher(a);
if(i==-1) {
// traitement d_erreur
printf("Pas d'individu portant ce nom.\n");
return;
}
free(TabInd[i]);
TabInd[i] = NULL;
printf("Individu detruit.\n");

}


int premiereplacevide(){
int i;
for(i=0;i<TAILLE;i++){
if (TabInd[i]==NULL)
return i;
}
}


void creation(){
//demander le nom au clavier
char n[15];
printf("nom individu?");
scanf("%s",&n);
char s;

int i=permiereplacevide();

TabInd[i]=(Individu*)malloc(sizeof(Individu));
TabInd[i]->sexe = 'M';
strcpy(TabInd[i]->nom,n);
//strcpy(TabInd[i]->sexe,s);
TabInd[i]->age=30;
}
void mariage()
{
char mh[64];
printf("nom de mari ?",mh);
scanf("%s",&mh);
char mf[64];
printf("nom de mariee ?",mf);
scanf("%s",&mf);
printf("%s et %s sont mariees",mh,mf);
}

}

individu.h
#ifndef INDIVIDU_H
#define INDIVIDU_H

typedef struct {
char nom[64];
char sexe;
int age;


}Individu, *pindividu;
void naissance();
void affichage();
void creation();
void destruction();
int rechercher(char *);
//Individu * rechercher(char*);
int premiereplacevide();

#endif

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
26 déc. 2007 à 20:18
Salut,

quelques choses bizarres :

dans main
Individu * tab[taille];

taille c'est quoi??
tu ne voulais pas utiliser TAILLE ??

et la fonction naissance, je vois le prototype mais pas la fonction
0
oui j'ai oublié de définir taille par #define TAILLE 5
c'est la taille de tableau

Pour la fonction naissance, justement je sais pas comment la faire:(
merci pour vos remarques
0