社区
C++ 语言
帖子详情
输出字符数组的时候为什么会输出很多“烫”???
zhy10
2007-01-23 03:58:46
恳请大家指教,谢谢!
...全文
1629
16
打赏
收藏
输出字符数组的时候为什么会输出很多“烫”???
恳请大家指教,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
北极猩猩
2007-01-25
打赏
举报
回复
更正一下楼上的回答,"烫"的内码是两个"int 3"的指令。
OOPhaisky
2007-01-25
打赏
举报
回复
可能是由于你没有加上字符串结尾标志'\0'的缘故,“烫”就是“int 3”的指令码,以防执行到这些“本不应该被执行的代码 ”时中断程序。
KenYuan2016
2007-01-25
打赏
举报
回复
在下面几种情况下,数组的输出都是不可知的。
1。申请了新的内存但是没有初始化
2。a,b共用1块内存,用b去赋值后,用a去访问,例如union.
3。内存已经释放,但操作系统还没来得及回收的内存。
越界一般程序会报错的。
sharkoasis
2007-01-25
打赏
举报
回复
在定义数组时全赋0值!比如
1.char str[100]={0};
2.char str[100];
memset(str,0,100);
deh_1984
2007-01-25
打赏
举报
回复
决队是越界了,要加'\0'
shan_ghost
2007-01-25
打赏
举报
回复
汗,继续勘误:上贴头三个字改为: “楼上的楼上的楼上”^_^
shan_ghost
2007-01-25
打赏
举报
回复
楼上的,注意 调试版本 四字。
据我观察,VC 6似乎就已经支持这样做了。一般来说填充的是9D、9C或CC。原因就是它们在很多平台上是无效指令或无效指针(由于机器指令会字或双字对齐,奇数地址的跳转会被很多16位以上的CPU拒绝)。
另,勘误:前面帖子中提及的应为《write clean code》
再另:感叹:似乎去年吧,《write clean code》(中文名似乎是《编写无错代码》)这本书还红遍半边天,刚才搜索已经几乎看不到中文信息了。
但我敢说,无论用什么语言,这本书都应是必读的经典。可惜,连大略读过的都很少见,潜心读过的似乎更少。也许很多人认为争论C有没有死比起“让自己写的程序不要太垃圾”更为重要?……
我啃
2007-01-25
打赏
举报
回复
边界没有控制好,VC通常都会填充0XCC作为无效值有利错误防范,(int 03指令强制退出)化到输出上便变成了烫字
祝云飞
2007-01-25
打赏
举报
回复
没初始化吧
femalelover
2007-01-25
打赏
举报
回复
1、编译器在调试版本会自动在未初始化或已释放的内存中填充0xCC
----------
不见得吧? 很多情况下所谓"已释放的内存"其实只是给那块内存挂上"可使用"的标记, 而里面的内容并不改变.
shan_ghost
2007-01-25
打赏
举报
回复
两种可能:
1、编译器在调试版本会自动在未初始化或已释放的内存中填充0xCC。这样一旦出现访问未初始化变量、野指针等等问题时就会立即报错。便于尽早解决问题。(见 write clear code 一书的相关讨论);
2、打开机箱,改进散热措施(CPU&内存条:烫死啦!!)。
pottichu
2007-01-23
打赏
举报
回复
最后需要加上 '\0'
toddzst
2007-01-23
打赏
举报
回复
越界
dreamXren
2007-01-23
打赏
举报
回复
数组没有初始化或者没有赋值
wwwhaichun
2007-01-23
打赏
举报
回复
数组最后一个元素不是'\0'导致越界了
todototry
2007-01-23
打赏
举报
回复
越界了
青少年C++编程NOIP/CSP竞赛通关语法-
字符数组
本课程为零基础C++语法专题课,是青少儿参加信息学奥赛NOIP/CSP需要学习的语法专题课; 2、本课程每节课均配有练习题以及真题,以锻炼孩子的解题能力;... 6、本课程介绍的是
字符数组
。也是历来竞赛重要考点。
为什么java中
输出
字符数组
名
会
直接
输出
字符串呢?
为什么java中
输出
字符数组
名
会
直接
输出
字符串呢?看看星辰的解释叭,你认同吗?
C语言:
字符数组
的输入
输出
目录 用printf
输出
用scanf输入 用gets输入 用puts
输出
用printf
输出
输出
方法1:printf 逐个字符
输出
。 void main(void){ char c[] = "I am happy"; int i; for(i =0; i < 10; i++){ ......
C++字符串数组 | 字符串数组
输出
C++字符串数组定义 在C++中不仅可以用string定义字符串变量,也可以用string定义字符串数组。 string array[3]; 表示定义一个字符串数组,这个数组包含3个字符串元素。 C++字符串数组初始化 string array[3]={{"li"},{"zhang"},{"wang"}} 读者在使用字符串数组时应该注意以下几点: 在一个字符串数组中包含若干个元素,每个元素相当于一个字符串变量。 并不要求每个字符串元素具有相同的长度,即使对同一个元素而言,它的长度也是可以变化的,当向某一
字符数组
与字符串数组讲解
C语言中:
字符数组
与字符串数组的定义
字符数组
是一个存放字符的数组 字符串数组是一个特殊的
字符数组
,它以’\0’(ASCII 为0)结尾 我们不能通过
字符数组
名知道数组内有多少成员,但可以通过字符串数组名计算数组内的成员数量 这里对
字符数组
(强调:字符串数组是一个特殊的
字符数组
)计算有一个关键字 sizeof,和一个函数 strlen: sizeof 计算的是
字符数组
占用空间的大小(这里除以每个...
C++ 语言
64,651
社区成员
250,488
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章