Bonjour à tous,
Je voudrais faire une fonction en C qui prend une pile (représentée par un tableau d'objets quelconques) en paramètre, en créé un 2 fois plus gros puis copie tous les éléments du 1er dans le 2eme et pour finir change le pointeur du 1er sur le 2nd. Note (la pile connait sa taille et son nombre d'éléments):
Donc pour le tableau:
Puis la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void * tab; tab = malloc(50 * sizeof(void));
J'ai donc 2 warning "dereferencing void * pointer" ligne 9. J'ai cherché un peu sur internet le problème et je ne comprend pas bien (la plupart caste la chose).
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 void tab_double(pile s) { void* tempo; int i = 0; tempo=malloc(2 * s->taille * sizeof(void)); while(i < s->nb_elem){ tempo[i] = s->tab[i]; } s->tab = tempo; /* LE FREE */ }
PS: JE NE VEUT PAS UTILISER DE REALLOC VOLONTAIREMENT.
Merci
Partager