#include <stdio.h>
#include <stdlib.h>
#define SIZE 100
struct tableau {
int number;
int capacity;
char ** mot;
};
struct tableau * tableauCreate(int initialCapacity);
void addWord(struct tableau * tableau, char * word);
void doubleCapacity(struct tableau * tableau);
void display(struct tableau * tableau);
struct tableau * tableauCreate(int initialCapacity) {
struct tableau * tableau;
tableau = (struct tableau *)malloc(1*sizeof(struct tableau));
tableau->number = 0;
tableau->capacity = initialCapacity;
tableau->mot = (char **)malloc((tableau->capacity)*sizeof(char *));
return tableau;
}
void addWord(struct tableau * tableau, char * word) {
int i;
char * mot;
tableau->number = tableau->number+1;
if (tableau->number>tableau->capacity) {
doubleCapacity(tableau);
}
tableau->mot[tableau->number-1] = (char *)malloc((SIZE+1)*sizeof(char));
mot = tableau->mot[tableau->number-1];
i = 0;
while (word[i]!='\0') {
mot[i] = word[i];
i = i+1;
}
mot[i] = '\0';
}
void doubleCapacity(struct tableau * tableau) {
tableau->capacity = 2*tableau->capacity;
tableau->mot = (char **)realloc(tableau->mot, (tableau->capacity)*sizeof(char *));
}
void display(struct tableau * tableau) {
int i;
for (i=0; i<tableau->number; i++) {
printf("mot %d : %s\n", i, tableau->mot[i]);
}
}
int main()
{
struct tableau * tab;
tab = tableauCreate(2);
addWord(tab, "alpha");
addWord(tab, "bravo");
addWord(tab, "charlie");
addWord(tab, "delta");
addWord(tab, "entrer");
addWord(tab, "facile");
display(tab);
return 0;
}
Une autruche ne se cuit pas aux petits lardons.