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