2014-11-25 40 views
0

我有下面的代码段“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 *,并且应该隐式地强制转换?我在这里错过了什么?

+0

在*哪一行*你得到的错误? – 2014-11-25 12:52:50

+0

@JoachimPileborg为了清晰起见编辑 – evading 2014-11-25 12:53:50

回答

4
error: invalid operands to binary * 
          ^^^^^^ 

显然你要使用一元运营商,所以究竟发生了什么事?

好了,你忘了分号;从上一行的末尾...

+0

嗯,那有点令人尴尬。谢谢。 – evading 2014-11-25 12:57:27

相关问题