无法在C中使用* void指针初始化结构

时间:2014-07-27 19:02:26

标签: c visual-studio visual-studio-2012

我有结构:

typedef struct node {
  char *question;
  struct node  *no;
  struct node  *yes;
} node;

尝试获取结构指针的内存:

node *n = malloc(sizeof(node));

编译错误:

 a value of type "void *" cannot be used to initialize an entity of type "node *"   

我告诉visual studio 2012编译C代码 - Compile as C Code (/TC)

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

malloc() void*分配给您的node*是100%有效的C,并且您的问题是100%,因为您的编译器适用于某些将您的代码读作C ++的原因即使您指定了/TC

答案 1 :(得分:-2)

简单地转换malloc的结果。

node *n = ( node* )malloc(sizeof(node));