C 语言数组

爱算法的大象x 2019-08-26 06:24:40
今天是用C语言,编数组 发现如果 len大于数组长度 用str[len]=0 会使得缓存区里面其它变量的值也变成0 比如 i=5; str[len]='/0'; //len大于数组长度 打印出i结果是0 (在运行的时候结果就是这样的,原因不知道emmm,知道的话,请告诉我一下😬)
...全文
64 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 1 楼 qybao的回复:
数组越界,把其他内存的信息修改了,这是很危险的行为
写代码的话,数组每次就在不知不觉中越界了😂,不过我是在虚拟机中运行,问题应该不大,而且越界计算机系统应该也能识别出来😂
  • 打赏
  • 举报
回复
引用 2 楼 虐猫人薛定谔i的回复:
麻烦,把程序源码发一下!
我发现错误的时候就已经把代码改了😂
赵4老师 2019-08-27
  • 打赏
  • 举报
回复
其实电脑开机后物理内存的每个字节中都有值且都是可读写的,从来不会因为所谓的new、delete或malloc、free而被创建、销毁。区别仅在于操作系统内存管理模块在你读写时是否能发现并是否采取相应动作而已。操作系统管理内存的粒度不是字节而是页,一页通常为4KB。
「已注销」 2019-08-26
  • 打赏
  • 举报
回复
麻烦,把程序源码发一下!
qybao 2019-08-26
  • 打赏
  • 举报
回复
数组越界,把其他内存的信息修改了,这是很危险的行为

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧