【发布时间】:2015-08-04 05:29:23
【问题描述】:
我一直在尝试将映射结构转换为 void 指针,反之亦然。
void addToMap(void *data){
// add some elements to the map
}
map<string, vector<myStruct> > myMap;
addToMap(&myMap);
我正在尝试将 myMap 作为参数发送到 addToMap 函数,并在函数内添加一些元素。我怎样才能将 void 参数推迟到地图结构?
我知道 static_cast 可用于取消引用 void 类型以了解类型。例如:
int* a = new int();
void* b = static_cast<void*>(a);
int* c = static_cast<int*>(b);
上面的 sn-p 可以工作,但我想在这种情况下不行。我已经为我的情况尝试过,也许必须有另一个技巧。
【问题讨论】:
-
这不是 C,也许是 C++?
-
我正在用 C++ 构建一个项目,但是我使用了一些 C 库,而接受 void 参数的函数来自这些库。
-
你不能简单地将它转换回你的地图类型吗?
-
请使用您正在书写的语言的标签(问题的实际语言和答案应该被写出来)。您可能碰巧使用的任何库的语言可能在很大程度上无关紧要。另外,请扩展“将不起作用”。是编译器错误,还是运行时错误,是否正在发射导弹?
标签: c++ dictionary casting void-pointers dereference