0error0waring,但一运行就停止 - 爱问答

(爱问答)

0error0waring,但一运行就停止

/*  c9-2.c  */

#include<stdio.h>

int main()

{

char s[20];

char *p=s;

scanf("%s",p);

while(s!='')

{

if(*p>='A'&&*p<='Z')

*p=*p+('a'-'A');

p++;

}

puts(s);

return 0;

}


1. 程序访问了系统数据区,尤其是往系统保护的内存地址写数据。比如尝试对NULL指针进行解引用或者对其指向的内存写入数据(但是不见得所有的指针越界都会触发这种错误)

2. 内存访问越界(数组越界等)

3. 无限的递归(导致栈溢出)

4. 对malloc / calloc申请的堆内存二次释放

5. 由于操作系统的段保护机制,如果由于缓冲区溢出等错误导致对某段内存的非法访问也会触发

6.另外还有一些大家平时不大注意的地方会导致段错误,例如使用标准库函数fclose对一个打开的文件关闭了多次

下一篇:在c语言中,每个语句和数据定义是用什么结束。

上一篇:求一个excel日期按天随机递增1-2天天的函数

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?