J'ai un tableau 2D simulé en utilisant des pointeurs avec malloc et je veux obtenir la taille de ce tableau, puisque sizeof() me renvoie la taille du pointeur. Mon code (ANSI C):Obtenir la taille d'un tableau simulé en utilisant malloc
void main(){
int s1=10;
int s2=15;
int ** rack=(int**)malloc(s1*sizeof(int**));
for(int i=0; i<s1; i++) rack[i]=(int*)malloc(s2*sizeof(int*));
}
Je veux une fonction (peut par le système, peut le faire moi-même) de cette façon:
size(rack) //returns 10
size(rack[0]) //returns 15
Merci à l'avance! (Pour plus d'informations j'utilise GNU/Linux)
Notez que [le pointeur sur le tableau de pointeurs n'est pas vraiment un tableau 2D] (https://stackoverflow.com/q/42094465/694733). De plus, ANSI C se réfère à une ancienne version obsolète de C; Si vous êtes sur Linux, il est tout à fait possible que vous puissiez passer à C11. – user694733
Une bonne habitude est de ne pas faire 'sizeof' dans' malloc' avec le type mais avec l'objet que le pointeur est supposé pointer sur 'malloc (s1 * sizeof * rack)'. Aussi en C, vous ne devriez pas lancer le retour de 'malloc' et des amis. –
Vous allouez la mauvaise quantité d'espace dans les mallocs –