質問

私はNSDataオブジェクトにVertex3Dの構造体のCスタイルの配列を保存し、アプリケーションを再ロードするときにそれらを取り戻すためにしようとしています:

NSData *vert = [NSData dataWithBytes:&vertices length:(sizeof(Vertex3D) * NUM_OF_VERTICES)];  

このデータは保存され、バックthusly私の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は1保存されたと同一であることを確認したが、私が意図したとおりに(背中と)のNSDataへのc-配列からの移行ではないことは明らかです。

役に立ちましたか?

解決

これはvertices変数のためのあなたの宣言を見ることなく伝えることは不可能だが、&verticesを使用すると、おそらくあなたは、あなたの質問に一覧表示、コードで間違っています。 verticesはCの配列である場合、それはすでにポインタである、あなたは、アドレス演算子&を省く必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top