Fonction qui crée un tableau à 2 dimensions avec pointeur générique
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 :
Code:
1 2 3 4
|
char **tab=NULL;
tab=alloc_2d(tab,10,10); |
Dans mon .h
Code:
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;
} |