Bonjour,

Je souhaite créer une structure contenant deux élements
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
typedef struct _cont {
	int nbElement;
	void *tab;
} Container;
afin de stocker toute sorte d'autres structures (du même type par instance de Container).

Pour cela j'aimerais pouvoir utiliser la même fonction d'ajout pour n'importe quelle structure à ajouter.

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);
	}
 
(...)
Bon déjà ce code ne compile pas en utilisant une véritable structure à stocker

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