我过去所有的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