gpt4 book ai didi

c - 两个不相关的 C 代码放在一起时出现段错误

转载 作者:行者123 更新时间:2023-11-30 17:41:44 25 4
gpt4 key购买 nike

main函数有2个代码。我正在学习数组和指针。我更感兴趣的是为什么当两个部分放在一起时代码会抛出段错误。当它们单独运行时,它们运行良好

#include <stdlib.h>
#include <stdio.h>

typedef struct nodeT{
int data;
struct nodeT *left;
struct nodeT *right;
}node;

insert(node **root, int data){
if(*root == NULL){
node *elem;
elem = (node*)malloc(sizeof(node));
elem->data = data;
elem->left = NULL;
elem->right = NULL;
*root = elem;
}
else{
if((*root)->data > data){
insert(&((*root)->left),data);
}
else{
insert(&((*root)->right),data);
}
}

}
inorder(node *root){
if(root == NULL){
return;
}
else{
inorder(root->left);
printf("%d \n", root->data);
inorder(root->right);
}
}
update(int A[]){
A[3] = 1000;
}

main(){

//PART 1

node *root;
insert(&root,5);
insert(&root,6);
insert(&root,8);
insert(&root,1);
insert(&root,9);
inorder(root);

// PART 2
int A[10];
int i = 0;
for(i = 0 ; i < 10 ; i++){
A[i] = i;
}
for(i = 0 ; i < 10 ; i++){
printf("%d \n", A[i]);
}
printf("\n");
update(A);
for(i = 0 ; i < 10 ; i++){
printf("%d \n", A[i]);
}
printf("\n");
}

最佳答案

因为 root 未初始化,所以它应该为 null(可能)。所以你会得到未定义的行为。

main 也应该返回一个值(只是因为 c 允许你省略 'int' 才能编译)。您的代码将告诉客户端它因不可预测的错误而退出。

关于c - 两个不相关的 C 代码放在一起时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21022447/

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