C程序自动崩溃

C程序自动崩溃,第1张

//已经帮你改好

#include<limits.h>

#include<stdio.h>

#include<stdlib.h>

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=0i<counti++)

{

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

}

printf("\n")

printf("具体是(")

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

{

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

printf("+")

}

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

printf(")")

printf("=")

printf("%d",sum)

printf("\n")

system("PAUSE")

return EXIT_SUCCESS

}

这种情况叫做 runtime error (运行时错误)。

在 Windows 7 上这样提示:

在 Windows XP 上这样提示:

runtime  error (运行时错误)就是程序运行到一半,程序就崩溃了。

比如说:

①除以零

②数组越界:int a[3] a[10000000]=10

③指针越界:int * p p=(int *)malloc(5 * sizeof(int)) *(p+1000000)=10

④使用已经释放的空间:int * p p=(int *)malloc(5 * sizeof(int))free(p) *p=10

⑤数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000]

这种情况叫做 runtime error (运行时错误)。

在 Windows 7 上这样提示:

在 Windows XP 上这样提示:

runtime  error (运行时错误)就是程序运行到一半,程序就崩溃了。

比如说:

①除以零

②数组越界:int a[3] a[10000000]=10

③指针越界:int * p p=(int *)malloc(5 * sizeof(int)) *(p+1000000)=10

④使用已经释放的空间:int * p p=(int *)malloc(5 * sizeof(int))free(p) *p=10

⑤数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000]


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

原文地址: http://outofmemory.cn/yw/11844762.html

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

发表评论

登录后才能评论

评论列表(0条)

保存