Bonjour,
Je souhaite créer une structure contenant deux élements
afin de stocker toute sorte d'autres structures (du même type par instance de Container).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 typedef struct _cont { int nbElement; void *tab; } Container;
Pour cela j'aimerais pouvoir utiliser la même fonction d'ajout pour n'importe quelle structure à ajouter.
Bon déjà ce code ne compile pas en utilisant une véritable structure à stocker
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 int putInContainer(Container *container, void *element) { if (!container || !element) { return KO; } /* allocation (je suis vraiment pas sûr pour le sizeof...) */ void *tmp = realloc(container->tab, sizeof(element) * (container->nbLine + 1)); if (tmp) { container->tab = tmp; } else { /* erreur allocation mémoire */ return KO; } /* affectation qui fonctionne pas vraiment */ container->tab[container->nbLine] = element; container->nbLine++; return OK; } int main() { Container *co = malloc(sizeof(Container)); co->nbLine = 0; co->tab = NULL; if (putInContainer(co, pointeur_sur_structure) { printf("pb\n"); exit(1); } (...)![]()
J'ai un problème pour l'allocation, en principe sizeof prend en paramètre un type de donnée il me semble,
et un problème pour l'affectation, je ne sais pas trop comment m'y prendre
Merci d'avance
Partager