我发布了一个问题here https://stackoverflow.com/questions/8434884/nlopt-with-armadillo-data早些时候,我想我可以回答是否有人可以帮助我解决以下问题:
我有一个函数
double func(void* data)
我想传递一个对象或结构。 (在我的例子中,是一个犰狳矩阵,甚至只是一个 std::vector )。
如何将指向对象的指针作为参数传递给 func(),然后,一旦进入 func(),如何将 void 指针重新转换为其原始类型?
Edit:这就是最终的工作结果,其中 mat 是犰狳矩阵类:
mat A(2,2);
A << 1 << 2 << endr << 3 << 4; // A=[1,2; 3,4]
func(&A);
并在函数中:
double func(void* data) {
mat* pB = (mat*)(data);
mat B = pB[0];
}
矩阵 B 和 A 现在包含相同的数据。
如果我理解正确的话,你需要这样的东西。
double func(void* data_v) {
struct my_type * data = data_v;
}
func((void*)my_data);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)