我有以下代码段
...
params->running = g_malloc(sizeof(*params->running))
*(params->running) = loopcount;
...
params看起来像这样
struct TaskParams
{
...
unsigned int *running;
};
我期待g_malloc返回一个gpointer(void *),它隐式地转换为unsigned int *并且我可以用*params->running = some_unit_value
但我在第*(params->running) = loopcount;
行
error: invalid operands to binary * (have ‘gpointer’ and ‘unsigned int *’)
我无法得到它。 gpointer是无效的*应该隐式转换为正确吗?我在这里缺少什么?
答案 0 :(得分:4)
error: invalid operands to binary *
^^^^^^
显然你正在尝试使用一元运算符,那么到底是怎么回事?
好吧,你忘记了上一行末尾的分号;
......