首页 > 其他 > 详细

踩内存

时间:2018-03-27 23:53:27      阅读:330      评论:0      收藏:0      [点我收藏+]
踩内存
总会听到这个名词,但是一直都不明白其中的含义。今天来学习一下踩内存。

踩内存,总的来说,是访问了不应该访问的内存地址。尤其在C指针中。可以访问不合法的内存。

  1. 访问越界数组
    int a[10];
    int *p = a;
    int c = p[11];
    //这时变量指针p指向的是一个非法内存。已经越界了。这是越界数组访问导致的踩内存。
  2. 访问已经被free释放掉的内存
    char *a = (char *)malloc(sizeof(char) * 10);//申请内存
    char *p = a;
    char c ;
    free(a);
    c = p[1];
    //这时,指针访问已经被释放的内存块a。这是访问已经被free掉的内存导致的踩内存。
  3. 栈内存访问越界
    int b = 1;
    int a[20] = {0};
    int c ;
    int *p = a;
    c = p[20];
    //首先变量b入栈,然后申请数组a[20]入栈,p[20]已经超出了数组的合法范围,
    //这时访问的是栈中变量b的内存。访问了不合法的内存。
  4. 其它
    本次学习,内容较少,留待以后继续充实。

踩内存

原文:http://blog.51cto.com/qiaopeng688/2091842

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!