C语言打印出‘烫’‘屯’是怎么回事?

如题所述

未初始化的堆或栈都会打印那些字,可看下以下代码
#include <stdio.h>
void main()
{
char s[10]; //栈
printf("%s\n", s);
char ch = 'a';
char* p = (char*)malloc(sizeof(char) * 10); //堆
printf("%s\n", p);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
s是个数组,是一个堆,没初始化的堆就会打印“烫”,内存值是0xCC,0xCC
p是个动态分配的,是一个栈,没初始化的盏就会打印“屯”,内存值是0xCD,0xCD
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-28
数组没赋初值。
数组下标越界。
指针指向了未知区域。
都有可能。
第2个回答  2011-11-28
越界,没赋初值,指向了未知的区域,要有良好的编程习惯
第3个回答  2011-11-28
你打印的时没有初始化的内存!
第4个回答  2011-11-28
你的数组越界或者你的内存指针搞错了。追问

是野指针么?

追答

楼下给你说了,仔细看看吧。

追问

谢啦

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网