gpt4 book ai didi

c - 未定义的数组成员不为零! (C)

转载 作者:行者123 更新时间:2023-11-30 15:36:50 25 4
gpt4 key购买 nike

我的代码是:

int main()
{
int i,*A,N,menu=0,x;

printf("\n\n\n What is the size: " );
scanf("%d",&N);

A=(int*)malloc(N*sizeof(int));


printf("\n enter Array's ");

for(i=0;i<N;i++){
printf("\n %d. element...: ",i+1);
scanf("%d",&A[i]);
}

for(i=4;i<14;i++){
printf("\n %d. element: ",A[i]);

}
}

例如,我说 4 代表 N 并输入元素,然后当我打印出 4 到 10 时,就会出现很多随机数。我正在尝试制作一棵二叉树,但条件不等于零。我认为其他元素将为零,因此 while 循环可以理解数组超出限制。

我做错了还是应该使用其他条件?

void add(int x,int * A){
int i=0;

while(A[i]!=NULL){

if(x<A[i]){
i=i*2+1;

}
else{
i=i*2+2;

}
}
A[i]=x;
}

最佳答案

原因是您访问数组越界。使用 N = 4,您最多只能访问 a[3](因为在 C 中数组索引从 0 开始)。
访问未分配的内存位置不一定会给您 0。它可以包含任何垃圾值。

关于c - 未定义的数组成员不为零! (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22438108/

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