Vertex3D 構造体の C スタイルの配列を NSData オブジェクトに保存し、アプリのリロード時にそれらを取得しようとしています。
NSData *vert = [NSData dataWithBytes:&vertices length:(sizeof(Vertex3D) * NUM_OF_VERTICES)];
このデータは保存され、次のように私の c-array に読み戻されようとします。
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-array から NSData への移行 (およびその逆) が意図したとおりでないことは明らかです。