无法转换为指针类型:C错误

时间:2011-09-21 21:50:27

标签: c++ c

我有一个需要调用的函数

int (*trytoprint_f)(int val, void *param);

但是当我调用这个函数时,并把

str name = {"jack", 4};
int age = 2;

client->trytoprint(age, (void *)name));

它给我一个错误“无法转换为指针类型:C错误”

我知道解决方案基本上使用下面的功能 str_dup_ptr(name,ulr-> imsi,mem);它的工作原理(我从框架中获得了这个功能)。

无论如何,我只是感到困惑。所以问题是函数是否接受(void * param),并且我声明了类型为str的name变量,当我将这个“name”变量转换为void指针时,它会返回给我这个错误吗?

任何人都可以帮助我理解为什么会发生这种错误吗?

谢谢

1 个答案:

答案 0 :(得分:5)

您必须将指向结构的指针转换为void *而不是结构本身。试试这种方式

client->trytoprint(age, (void *) &name));