Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.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
如何编写运行在windows上的c代码?_C - Fatal编程技术网

如何编写运行在windows上的c代码?

如何编写运行在windows上的c代码?,c,C,这段代码可以在Linux上运行,为什么不能在Windows(MSVC)上运行呢 #包括 #包括 #包括 typedef结构节点标记 { int数据; 结构节点\标记*左; 结构节点_标记*右侧; }树木; 空插入(树**rt,整数) { 树*tmp; 如果(*rt==NULL) { tmp=(Tree*)malloc(sizeof(Tree)); if(tmp==NULL) { fprintf(标准“malloc错误”); 出口(1); } tmp->data=num; *rt=tmp; } 其

这段代码可以在Linux上运行,为什么不能在Windows(MSVC)上运行呢

#包括
#包括
#包括
typedef结构节点标记
{
int数据;
结构节点\标记*左;
结构节点_标记*右侧;
}树木;
空插入(树**rt,整数)
{
树*tmp;
如果(*rt==NULL)
{
tmp=(Tree*)malloc(sizeof(Tree));
if(tmp==NULL)
{
fprintf(标准“malloc错误”);
出口(1);
}
tmp->data=num;
*rt=tmp;
}
其他的
{
如果(num>(*rt)->数据){
插入(&(*rt)->右侧,数字);
}    
否则{
插入(&(*rt)->左,数字);
}
}
}
无效打印节点(树*根)
{
if(root==NULL)
{
回来
}
如果(根->左!=NULL)
{
打印_节点(根->左);
}
printf(“数据=%d\n”,根->数据);
如果(根->右!=NULL)
{
打印节点(根->右);
}
}
int main(int argc,字符**argv)
{
Tree*root=NULL;
int arr[]={
415,
456,
56,
156,
51,
21,
54,
3.
15,
651,
};
整数长度;
长度=sizeof(arr)/sizeof(arr[0]);
for(int i=0;i
if(num>(*rt)->数据)
上的MSVC错误


if(num>(*rt)->data)
(分段错误)上的MingW64错误。

通过
malloc()
分配的缓冲区中的值最初是不确定的,因此必须在使用这些值之前对其进行初始化

可以这样做:

Tree* tmp;
if (*rt == NULL)
{
    tmp = (Tree*)malloc(sizeof(Tree));
    if (tmp == NULL)
    {
        fprintf(stderr, "malloc error ");
        exit(1);
    }
    tmp->data = num;
    tmp->left = NULL; /* add this */
    tmp->right = NULL; /* add this */
    *rt = tmp;
}

代码应该直接发布在您的问题中,而不是发布在外部网站上。您的代码应该。在使用它们的值之前,必须初始化通过<代码> MalCube()/代码>分配的缓冲区,或者调用未定义的行为。C和C++是不同的语言。你介意选一个吗?@MikeCAT,谢谢,添加code
memset
success!