我有一个指向结构的指针,我需要实现一个方法来复制结构的所有内存内容。一般来说,我需要执行结构的深层复制。
这是结构:
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) );
...
先感谢您。