У меня есть указатель на структуру, и мне нужно реализовать метод, который будет копировать все содержимое памяти структуры. Вообще говоря, мне нужно выполнить глубокую копию структуры.
Вот структура:
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) );
...
Заранее спасибо.