题
我试图重新加载应用程序时,向Vertex3D结构的c样式数组保存到NSData对象,让他们回:
NSData *vert = [NSData dataWithBytes:&vertices length:(sizeof(Vertex3D) * NUM_OF_VERTICES)];
此数据然后被保存,并且试图被读回到我的C-阵列正是如此:
vertices = malloc(sizeof(Vertex3D) * NUM_OF_VERTICES);
[vert getBytes:&vertices length:(sizeof(Vertex3D) * NUM_OF_VERTICES)];
在“EXC_BAD_ACCESS”上述结果后面是:
malloc: *** error for object 0x48423c0: pointer being freed was not allocated
我很新的编程所以可能有一些基本的内存管理的原则,我不知道的。我已验证所装载的NSData的是相同的保存的一个,但很明显,从C-阵列NSData的(和背面)的过渡是不作为本人意图。
解决方案
这是不可能说没有看到你的宣言为vertices
变量,但使用&vertices
可能是错误的,你在你的问题列表的代码。如果vertices
是C数组,则它已经是一个指针,你应该省略地址操作者&
。
不隶属于 StackOverflow