zoukankan      html  css  js  c++  java
  • 如果debug调试的时候中断总是停在析构函数的delete[] p上

    如果debug调试的时候中断总是停在析构函数的delete[] p上,那可能

    有两种情况:

    1.调用析构函数的这个对象没有被分配空间,先找到调用调用析构函数出错的这个对象,

    然后查看它是否被分配了空间,有可能你觉得你分配了,但实际上没有。

    2.你给这个动态对象只分配了N个单元的空间,但是却给超过N-1的下标的单元赋了值,也就是越界了,假设你一共赋值了N + 2个单元,这时,

    当执行delete[]p这条语句时,delete就会释放N+ 2个单元,所以多释放了3个单元的空间当然会程序崩溃了。

    例如:

     1 #include <iostream>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int *array = new int [10];     //只给array分配了10个空间
     7     for (int i = 0; i < 12; i++)    //却给array的12个空间赋了值
     8         array[i] = i;
     9 
    10     delete[] array;
    11     return 0;
    12 
    13 }
  • 相关阅读:
    github
    保存中文文本
    python3与 python2 urllib模块区别
    gitbook 使用粘自csdn
    html基础
    R语言学习笔记之十
    R语言学习笔记之九
    R语言学习笔记之八
    R语言学习笔记之七
    R语言学习笔记之六
  • 原文地址:https://www.cnblogs.com/hi3254014978/p/10015529.html
Copyright © 2011-2022 走看看