我過去所有的PARAM的數據結構作爲void*
我的功能:如何從C++中的void指針複製數據?
void func(void* param, size_t size) {
// here I need copy data from param
void * copy_data = malloc(size);
memcpy(copy_data, param, size);
...
}
// call it like this
func(&data, sizeof(data));
當參數是struct
且有物體裏面是這樣的:
struct data {
CustomClass object;
};
的memcpy
不會複製真實數據在object
。
有沒有辦法從void*
複製真實數據?如果沒有,關於它的最佳實踐是什麼?我認爲肯定有人問過這樣的問題,我只是找不到它:-)
你是怎麼用'data'調用'func'的? – Ajay
深拷貝構造函數是爲此設計的。 –
@ Jean-BaptisteYunès但是我無法從'void *'中獲取數據類型,在'func'中會有很多類型。 – zzy