在dev环境下,用malloc只申请了了5个char字符的空间,为什么存入的个数超过了5个
在dev环境下,用malloc只申请了了5个char字符的空间,为什么存入的个数超过了5个
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 浮生灬七闲 2020-01-02 17:07关注
可以看一点内存方面的知识啦,这个是很简单的程序溢出问题,
简单来说,你申请的内存可以放5个char,超出的部分就挨着放在后面了,但超出的部分你没有申请,所以理论上你不能使用,有可能注意是有可能引发程序出错。
正如楼上所说,程序很简单,仅仅溢出但没有导致程序崩溃。
但如果程序比较复杂,溢出有可能会意外的修改其他变量的值,或者直接修改你没有权限修改的值造成程序崩溃。崩溃的话还可以定位到溢出的位置,意外修改其他变量则不太容易发现,为了减少这种隐晦的不易复现的bug,应避免内存溢出。
可以再学习学习内存泄露,很有用的。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 武汉岩海低应变分析软件,导数据库里不显示波形图
- ¥15 CreateBitmapFromWicBitmap内存释放问题。
- ¥30 win c++ socket
- ¥15 CanMv K210开发板实现功能
- ¥15 C# datagridview 栏位进度
- ¥15 vue3页面el-table页面数据过多
- ¥100 vue3中融入gRPC-web
- ¥15 kali环境运行volatility分析android内存文件,缺profile
- ¥15 写uniapp时遇到的问题
- ¥15 vs 2008 安装遇到问题