Réponse acceptée !
Ça c'est une warning, ça n'empêche pas la compilation.
return (**c);
C'est quoi ça ? Tu retournes la valeur pointée par le premier pointeur...
Ne change pas l'implémentation que je t'ai fourni
void **malloc2d (unsigned int num, unsigned int size)
{
char **c, **d, *p;
if(!num || !size) return 0; //<- à retirer dans un code sûr
if(!(c = (char**)malloc((num*size)+(num*sizeof(char*))))) return 0;
d = c; p = (char*)(c+num);
do *d++ = p+(--num*size); while(num);
// OU
// do *(d+(--num)) = p+(num*size); while(num);
return (void**)c;
}
char **prix;
prix = (char**)malloc2d(12,4);
while(row = mysql_fetch_row(res)) {
memcpy(prix[i], row[0],4);
}
Voilà. Devrait passer là.
C++ (@++)