我有结构:
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)
如何解决这个问题?
最佳答案
将malloc()
的void*
赋给你的node*
是100%有效的C,你的问题肯定是100%由于您的编译器出于某种原因将您的代码读取为 C++,即使您指定了 /TC
。
关于无法在 C 中使用 * void 指针初始化结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984497/