xianzhi157 2020-01-02 16:27 采纳率: 0%
浏览 277
已采纳

在dev环境下,用malloc只申请了了5个char字符的空间,为什么存入的个数超过了5个

图片说明
在dev环境下,用malloc只申请了了5个char字符的空间,为什么存入的个数超过了5个

  • 写回答

2条回答 默认 最新

  • 浮生灬七闲 2020-01-02 17:07
    关注

    可以看一点内存方面的知识啦,这个是很简单的程序溢出问题,
    简单来说,你申请的内存可以放5个char,超出的部分就挨着放在后面了,但超出的部分你没有申请,所以理论上你不能使用,有可能注意是有可能引发程序出错。
    正如楼上所说,程序很简单,仅仅溢出但没有导致程序崩溃。
    但如果程序比较复杂,溢出有可能会意外的修改其他变量的值,或者直接修改你没有权限修改的值造成程序崩溃。崩溃的话还可以定位到溢出的位置,意外修改其他变量则不太容易发现,为了减少这种隐晦的不易复现的bug,应避免内存溢出。
    可以再学习学习内存泄露,很有用的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥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 安装遇到问题