Bonjours, je souhaite créer une fonction qui permettra de créer un tableau à 2 dimension en ayant un type void en paramètre et qui retournera un pointeur void.
Le problème c'est que j'ai un message d'erreur : "imcompatible pointeur type, assignement from incompatible pointeur type".
Je n'arrive pas a trouver la solution pour que mon code marche. Pour un tableau a une dimension sa marche mais pour 2 impossibles.
voici mon code :
Dans le main :
Dans mon .h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char **tab=NULL; tab=alloc_2d(tab,10,10);
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 void **alloc_2d(void **_ptr,int size1,int size2) { int i; void **ptr=(void**)_ptr;/*cette ligne est pour que le compilo accepte le void pour 1 tableau a une dimenssion sa marche en enlevant 1 étoile (void *ptr=(void*)_ptr;)*/ assert(size1>0); assert(size2>0); ptr=malloc(size1*sizeof(ptr)); if(malloc_error(ptr)==NULL) /*malloc_error est une fonction qui envoi un message d'erreur et qui retourne le pointeur envoyer*/ { free_alloc(ptr); return ptr; } for(i=0;i<size1;i++) { ptr[i]=malloc(size2*sizeof(ptr[i])); if(malloc_error(ptr[i])==NULL) { for(i=i-1;i>=0;i--) free_alloc(ptr[i]); free_alloc(ptr); return ptr; } } return ptr; }
Partager