C语言崩溃问题,为什么会这样,如何解决

C语言崩溃问题,为什么会这样,如何解决,第1张

append(32); 的时候,while((N>=tempvalue && templeft!=NULL) || (N<temp value && temp right

!=NULL

))

不满足,执行tempright=NewNode; 那么原来的就被right覆盖了

//已经帮你改好

#include<limitsh>

#include<stdioh>

#include<stdlibh>

int main(void)

{

int i=0,b[50],sum=0;

int count=0;

char c;

printf("实现从键盘上输入任意个数的加法器\n");

printf("请输入要求和的任意个数\n");

//注意:输入的各数据之间用一个空格分隔,最后回车结束输入

do

{

scanf("%d",&b[i]);//将键盘上输入的数赋值给对应的数组b[i]

count++; //每次循环将使变量count的值加1,count变量即为键盘上输入数的个数

sum+=b[i]; //每次循环使b[i]自加,将值赋给sum

i++; //每次循环使i自加1,保证下次循环即为输入的下一个数

scanf("%c",&c); //扫描键盘上输入的字符

}while(c!='\n'); //使c不等于换行符即回车键,扫描到\n即停止循环

printf("你总共输入了%d个数\n",count);

for(i=0;i<count;i++)

{

printf("你输入的第%d个数是:%d\n",i+1,b[i]);

}

printf("\n");

printf("具体是(");

for(i=0;i<count-1;i++)

{

printf("%d",b[i]);

printf("+");

}

printf("%d",b[count-1]);

printf(")");

printf("=");

printf("%d",sum);

printf("\n");

system("PAUSE");

return EXIT_SUCCESS;

}

正如楼下所言 int p ,定义的p是一个指向int型的指针

int (p)[10]是一个指向数组的指针 数组长度为10

假如定义成 deal(int p),传参数时要加强制类型转换: deal((int)a);

并且使用p时不能用下标,p[2][3]是错误的,因为不知道p指向的int型的长度,无法编译成(p+210+3)

必须自己写成(p+210+3)来调用

假如定义成 deal(int (p)[10])就不一样了,编译器就能知道p是一个指向长度为10的数组的指针

那么p[2][3]就能编译成(p+210+3)了

总之,C语言是很灵活的,不同的定义方式配上不同的用法,都是能得到正确的结果的

不知道这么说楼主明白了没

同样的还有多维数组对多维指针的问题,楼主可以自己类推一下

以上就是关于C语言崩溃问题,为什么会这样,如何解决全部的内容,包括:C语言崩溃问题,为什么会这样,如何解决、C程序自动崩溃、C语言指针问题,这个程序为啥崩溃等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9694780.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存