gpt4 book ai didi

c - 结构和段错误

转载 作者:行者123 更新时间:2023-12-02 03:29:12 25 4
gpt4 key购买 nike

#include<stdio.h>
#include<stdlib.h>
main()
{
typedef struct tnode *pad;
struct tnode{
int data;
pad left;
pad right;
};
pad p=NULL;
p=malloc(sizeof(struct tnode));
(p->data)=5;
(p->left)=malloc(sizeof(struct tnode));
(p->left)->data=4;
(p->right)=malloc(sizeof(struct tnode));
(p->right)->data=7;
printf("\nroot is %d right %d left %d",p->data,(p->left)->data,(p->right)->data);

我运行了这段代码,但出现了段错误代码没有做特定的事情,我只是想知道为什么会出现段错误。

最佳答案

我尝试在 ideone.com 上运行它,它工作正常,(printf() 函数打印它应该打印的内容,)然后之后它给出了“运行时错误”。

然后我在末尾添加了一个“return 0”,它工作正常没有任何错误。

向编译器提供正确的参数,让它针对大量常见的编程错误向您发出适当的警告。在您的情况下,您错误地指定了 main() 函数(它应该返回“int”,)但是编译器是在传统的 C 模式下编译它,所以它没有警告您。然后,由于原型(prototype)缺少返回类型,编译器也不会警告您缺少返回语句。如果您开始使用 -Wall(或您的编译器理解为“启用所有警告”的任何其他标志),您将避免很多麻烦。

关于c - 结构和段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28296553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com