Can';t使用C中的*void指针初始化结构
我有以下结构:Can';t使用C中的*void指针初始化结构,c,visual-studio,visual-studio-2012,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
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 *"
我告诉VisualStudio2012编译C代码-编译为C代码(/TC)
如何解决这个问题?只需强制转换malloc的结果
node *n = ( node* )malloc(sizeof(node));
将
malloc(),你的问题是100%,因为你的编译器是因为某种原因读取你的代码为C++ C++,即使你指定了代码>/Tc< /Calp>。?您在编译时是否看到此问题?或者只是在IDE编辑器中显示警告?。这是有效的,但你不应该这样做。我们不会投票给你,因为我们不喜欢你的演员,我们投票给你是因为你完全没有注意到海报的实际问题是他在C++模式中意外编译。帕特里克RutkOksKy你怎么知道的?你没有。你只是在做假设,这并不能回答问题。“如何编译我的C代码”的答案不是“用C++重写它”…@ParamagneticCroissant我的代码是100%有效的C。并且完美地回答了如何解决这个问题?