如何在Obj-C中获取结构的长度?

时间:2016-12-07 03:03:53

标签: ios objective-c

int realLen = *((int*)((char*)sData.pData + 2));
NSLog(@"realLen = %d", realLen);
NSData* data = [NSData dataWithBytesNoCopy:sData.pData length:realLen freeWhenDone:NO];

sDatastruct类型,pData类型属于void*类型;

如何获得正确的长度?

1 个答案:

答案 0 :(得分:0)

所以你想将存储在sData.pData中的地址存储在NSData对象中吗?这很奇怪,可能没有适当的内存管理。

如果 你想做什么,你可以使用:

int realLen = sizeof(sData.pData)

但是,如果你想要做的是将sData.pData指向的数据复制到你的NSDats中,那你就不走运了。 C风格void*不会让您知道它所指向的事物的大小。您必须知道数据的大小。