“invaiid操作数为二进制*” 指定为uint * g_malloc()后
问题描述:
我有下面的代码段“invaiid操作数为二进制*” 指定为uint * g_malloc()后
...
params->running = g_malloc(sizeof(*params->running))
*(params->running) = loopcount;
...
PARAMS看起来像这样
struct TaskParams
{
...
unsigned int *running;
};
我期待g_malloc返回一个时gpointer(void *)隐式转换为无符号整型*,并且我可以将其指定为*params->running = some_unit_value
然而,我得到一个错误信息*(params->running) = loopcount;
error: invalid operands to binary * (have ‘gpointer’ and ‘unsigned int *’)
我不明白。 gpointer是void *,并且应该隐式地强制转换?我在这里错过了什么?
答
error: invalid operands to binary *
^^^^^^
显然你要使用一元运营商,所以究竟发生了什么事?
好了,你忘了分号;
从上一行的末尾...
+0
嗯,那有点令人尴尬。谢谢。 – evading 2014-11-25 12:57:27
在*哪一行*你得到的错误? – 2014-11-25 12:52:50
@JoachimPileborg为了清晰起见编辑 – evading 2014-11-25 12:53:50