我有结构:
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)
如何解决这个问题?
答案 0 :(得分:2)
将malloc()
void*
分配给您的node*
是100%有效的C,并且您的问题是100%,因为您的编译器适用于某些将您的代码读作C ++的原因即使您指定了/TC
。
答案 1 :(得分:-2)
简单地转换malloc的结果。
node *n = ( node* )malloc(sizeof(node));