osx上的malloc()类型转换错误

时间:2017-10-27 21:33:47

标签: c macos

我是Mac上的新编程(osx:Sierra 10.12.6),所以这可能是一个非常愚蠢的问题。我正在进行一些链接列表操作,一切都按预期工作,除非有时当我不重启Mac几天然后出现一些类型转换错误。虽然转换类型可以删除错误,但通常我不需要在使用C语言时为malloc()转换类型。即使我之前编译的那些没有错误的程序也会出现如下错误:

error: assigning to 'node *' (aka 'node_t *') from incompatible type 'void *' 
head = malloc(sizeof(head));
error: cannot initialize a variable of type 'node *' (aka 'node_t *') with an rvalue of type 'void *' 
node *current = malloc(sizeof(current));

重新启动终端并完全关闭计算机并重新启动后可以解决此问题,这些程序可以再次编译而不会出错。如果有人能帮助我解决这个问题,我将不胜感激,所以即使我没有重启Mac几周或更长时间,我也不会遇到这些错误。

1 个答案:

答案 0 :(得分:-2)

你必须确保如此投降:

head = (node*) malloc(sizeof(node))