我之前发布了一个问题here,如果有人可以帮我解决以下问题,我想我可以回答:
我有一个功能
double func(void* data)
我想传入一个对象或结构。 (在我的例子中是犰狳矩阵,甚至只是和std :: vector)。
如何将指向对象的指针作为func()的参数传递,然后,一旦进入func(),如何将void指针重新转换为原始类型?
编辑:这是最终工作的内容,其中mat是Armadillo矩阵类:
mat A(2,2);
A << 1 << 2 << endr << 3 << 4; // A=[1,2; 3,4]
func(&A);
和func:
double func(void* data) {
mat* pB = (mat*)(data);
mat B = pB[0];
}
矩阵B和A现在包含相同的数据。
答案 0 :(得分:0)
如果我理解你,你需要这样的东西。
double func(void* data_v) {
struct my_type * data = data_v;
}
func((void*)my_data);