【发布时间】:2009-05-15 12:13:52
【问题描述】:
我有这个数组:
unsigned char* data = CGBitmapContextGetData(cgctx);
然后我尝试使用 sizeof(data) 获取大小,但这将返回一个无意义的值 4。数据包含大量信息。那不能只是 4 ;)
我什至在 data[8293] 处获得信息......所以......根本不是 4 个元素。
【问题讨论】:
标签: c objective-c arrays
我有这个数组:
unsigned char* data = CGBitmapContextGetData(cgctx);
然后我尝试使用 sizeof(data) 获取大小,但这将返回一个无意义的值 4。数据包含大量信息。那不能只是 4 ;)
我什至在 data[8293] 处获得信息......所以......根本不是 4 个元素。
【问题讨论】:
标签: c objective-c arrays
sizeof 返回 4,因为您的变量被声明为指针,而不是 C 数组 (char data[1024])。
要获得所需的大小,请使用 CGBitmapContextGetHeight 和 CGBitmapContextGetWidth。
【讨论】:
尝试使用
CGBitmapContextGetBitsPerPixel
CGBitmapContextGetHeight
CGBitmapContextGetWidth
或
CGBitmapContextGetBytesPerRow
CGBitmapContextGetHeight
【讨论】:
4的值不是废话,就是你要的指针的大小。在 C 中没有办法找出指针指向的数组的大小。
【讨论】:
您正在获取指针的大小,而不是数组的大小。仅当您确实有要测量的数组时,才对数组使用 sizeof() ;)
【讨论】:
您混淆了指针和它指向的对象。
【讨论】: