【乱码】输出乱码,乱码“烫烫烫……”分析

【乱码】输出乱码,乱码“烫烫烫……”分析

源地址

http://topic.csdn.net/u/20110628/16/61312566-c5b8-4b31-b910-b1cc57157992.html

输出的是隐藏了烫烫烫那部分,那系统调用a时,烫烫烫是否存在?

初始化变量的时候,系统开辟出的内存,系统究竟赋给它什么初值了?且这些初值究竟是以什么类型存放的。。。

1、在vs调试时,内存会用0cc来初始化,而0xcccc恰好是"烫"的编码

2、debug下,没有初始化的数据,编译器自动填充,填充的值正好输出显示为 烫。 release就未定义了。 '\0' 是字符串结束符

3、是因为你没有给你的字符串设置结束符,才会读到乱码的,比如 char a[100],你分配空间后,设置 a[100] = 0;想读到哪为止,就在这个位置后面写入结束符

4、cout类重载了针对char*类型的<<操作,输出的时候是根据字符'\0'判断字符结尾的,如果没有找到'\0'就一直往下输出,并不会考虑内存里的东西到底是什么,超出ascii定义的内容就以一些“乱码”输出(具体我也不知道是如何对应的。 对于char 数组来说,新开辟的内存如果没有经过初始化,内存里的值是不确定的,可能是上次程序运行遗留下来的值。常见的初始化操作包括memset()和char buf[1024]={0}

是因为你没有给你的字符串设置结束符,才会读到乱码的,比如

char a[100],你分配空间后,设置 a[100] = 0;想读到哪为止,就在这个位置后面写入结束符

是因为你没有给你的字符串设置结束符,才会读到乱码的,比如

char a[100],你分配空间后,设置 a[100] = 0;想读到哪为止,就在这个位置后面写入结束符

✨ 相关推荐

讣告的写法及注意事项
365bet备用器下载

讣告的写法及注意事项

📅 08-10 👀 2904
纽约出租车费用是多少?(2026年黄色出租车指南)
beat365网页版登录官网

纽约出租车费用是多少?(2026年黄色出租车指南)

📅 06-24 👀 9750
我的世界:5种方式处理各类垃圾的物品,小心扔了就捡不回来了