66问答网
所有问题
为什么c语言内存溢出就输出烫烫烫
希望哪位大神能具体解答内存未初始化或溢出就输出烫烫烫的根本原因
举报该问题
推荐答案 2014-09-23
这有啥根本原因,就是因为字符串里面是乱码呗。
未初始化内存,在C程序运行期间,全部二进制位的值都是110011001100这个样子,十六进制表示为0xcc,作为英文,是不可打印字符,而作为中文(两个字节是一个),0xcccc就是这个“烫”字。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/UvnDssxvpvpD9sDsinx.html
其他回答
第1个回答 推荐于2017-11-26
0xcc 字符串就事烫,vc对未初始化的栈内存会自动用0xCCCCCCCC填充,就事烫烫烫本回答被提问者采纳
第2个回答 2014-09-23
乱码而已。如果调试模式,vc类的会把一些区域用0xcc填充【可能是中断指令】,当出现问题的时候,就容易被调试器捕获了。
说到底,就是乱码。看你编译器对未使用区域内存的填充了,也许是随机的,也许是ide干的。
相似回答
为什么C语言
经常打印出“屯屯屯。。。”出来?
答:
是VC吧……明显的变量未初始化
,“屯屯”是VC为了方便调试对未初始化的默认填充,这样你就能知道有变量未初始化了。记住定义变量一定要初始化,初始化数组最好全清零……
c语言
中的字符数组的输入
答:
这个关系到内存里面的栈问题
。。当你 char s[10];时候,内存会在栈上分配地址,因为要位对齐,分配的是12个字节的,内存,大至如下,其中 C0 FF 12 00 ,是上一个栈地址。0012ffc0 CC CC CC CC CC 烫烫烫.0012FF79 CC CC CC CC CC CC CC 烫烫烫.0012FF80 C0 FF 12 00 输入 12 ...
c语言
编译后
为何
后面有乱码?
答:
因为a数组没有字符串结束符号'\0'可以这样改:char a[100];改成:char a[100]={0};或者:printf("m=%s\n",a);前面加上一行:a[i] = '\0';
c语言
中的字符数组的输入
答:
这个关系到内存里面的栈问题
。。当你 char s[10]; 时候,内存会在栈上分配地址,因为要位对齐,分配的是12个字节的,内存,大至如下,其中 C0 FF 12 00 ,是上一个栈地址。0012ffc0 CC CC CC CC CC 烫烫烫.0012FF79 CC CC CC CC CC CC CC 烫烫烫.0012FF80 C0 FF 12 00 输...
大家正在搜
c语言输出烫烫什么原因
c语言本身没有输入输出语句
c语言输入输出
c语言出现烫怎么解决
c语言输出
c语言逆序输出
c语言输出字符
c语言输出格式
c语言将数组逆序输出
相关问题
c语言运行后为什么出现n多的烫烫烫烫烫!!!!
c语言中为什么出现现烫
C语言编程问题为什么会输出烫烫。。。在线等!急!
C语言中字符数组输出“烫烫烫烫烫烫烫”,如何解决
c语言编译时出现“烫烫烫烫烫烫烫烫烫”
c语言里运行的结果有一群烫烫烫是怎么回事
c语言输出烫烫烫.....
C语言运行时出现“烫烫烫烫烫烫烫烫烫”