J'ai commencé par créer un type de case
dans mon fichier main.c
- Code: Tout sélectionner
typedef struct uneCase {
int val; //valeur de la case
int vide; //vide ou plein
}laCase;
Dans mon headdeur
- Code: Tout sélectionner
#ifndef tabDynamique
#define tabDynamique
#define VIDE 0
#define PLEIN 1
#define SIZE_BEGIN 5
typedef struct uneCase* Case;
typedef struct unTableauDynamique { //Case est protégé donc il n'est pas nécessaire de protéger TableauDynamique
Case *t; //tableau de case (valeur numerique + booleene) taille indéfini
int nbVal; // nb valeur dans le tableau
int size_max;
}TableauDynamique;
TableauDynamique tabDynamiqueCreer(int N);
#endif // tabDynamique
Et dans le .c lié voici le code de la fonction pour créer le tableau
J'ai tout d'abord tenté ceci
- Code: Tout sélectionner
TableauDynamique tabDynamiqueCreer(int N)
{
TableauDynamique tab;
tab.nbVal=0;
tab.size_max=N;
tab.t[N]={0,VIDE};
return tab;
}
Puis je me suis souvenu que l'on ne pouvait déclarer avec les accolades qu'à la création du tableau; autrement l'on est obligé de passer par une boucle, c'est donc ce que j'ai fait
- Code: Tout sélectionner
TableauDynamique tabDynamiqueCreer(int N)
{
TableauDynamique tab;
tab.nbVal=0;
tab.size_max=N;
int k;
for (k=0;k<N;k++)
{
tab.(t[k].val)=0;
tab.(t[k].vide)=VIDE;
}
return tab;
}
Malheureusement sans succès, j'ai du coup un peu de mal à voir comment je vais initialiser ce tableau =)
