我试图重新加载应用程序时,向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数组,则它已经是一个指针,你应该省略地址操作者&

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top