Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t使用C中的*void指针初始化结构_C_Visual Studio_Visual Studio 2012 - Fatal编程技术网

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。并且完美地回答了如何解决这个问题?