構造体へのポインタがあり、構造体のすべてのメモリコンテンツをコピーするメソッドを実装する必要があります。一般的に言えば、構造のディープコピーを実行する必要があります。
構造は次のとおりです。
typedef struct {
Size2f spriteSize;
Vertex2f *vertices;
GLubyte *vertex_indices;
} tSprite;
そして、これが私が実装した、構造をコピーする必要のあるメソッドです。
tSprite* copySprite(const tSprite *copyFromMe)
{
tSprite *pSpriteToReturn = (tSprite*)malloc( sizeof(*copyFromMe) );
memcpy(pSpriteToReturn, copyFromMe, sizeof(*copyFromMe) );
return pSpriteToReturn;
}
問題は、配列「vertices」と「vertex_indices」が正しくコピーされるかどうかわからないことです。この方法で何がコピーされますか?アレイのアドレスまたはアレイ自体?
構造をコピーした後に配列をコピーする必要がありますか?それとも、構造をコピーするだけで十分ですか?
このようなもの:
...
pSpriteToReturn->vertices = (Vector2f*)malloc( sizeof(arraysize) );
memcpy(pSpriteToReturn->vertices, copyFromMe->vertices, sizeof(arraysize) );
...
前もって感謝します。