Comment puis-je obtenir la taille d’un tableau en C / Objective-C?

J’ai ce tableau:

unsigned char* data = CGBitmapContextGetData(cgctx); 

puis j’ai essayé d’obtenir la taille avec sizeof (data), mais cela me retournera une valeur absurde de 4. data contient une grande quantité d’informations. Cela ne peut pas être juste 4;)

Je reçois même des informations sur les données [8293] … donc … pas 4 éléments du tout.

sizeof renvoie 4 car votre variable est déclarée comme un pointeur, par opposition à un tableau C ( char data[1024] ).

Pour obtenir la taille CGBitmapContextGetHeight vous devez utiliser CGBitmapContextGetHeight et CGBitmapContextGetWidth .

Essayez d’utiliser

 CGBitmapContextGetBitsPerPixel CGBitmapContextGetHeight CGBitmapContextGetWidth 

ou

 CGBitmapContextGetBytesPerRow CGBitmapContextGetHeight 

La valeur de 4 n’est pas un non-sens, c’est la taille du pointeur que vous avez demandé. En C, il n’ya aucun moyen de déterminer la taille du tableau pointé par un pointeur.

Vous prenez la taille du pointeur, pas du tableau. Utiliser sizeof () pour les tableaux ne fonctionne que si vous avez réellement un tableau à mesurer;)

Vous confondez un pointeur et l’object sur lequel il pointe.