• 如果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 }
  • 相关阅读:
    【转】CNN卷积神经网络_ GoogLeNet 之 Inception(V1-V4)
    【转】Caffe的solver文件配置
    python 从filelist.txt中拷贝文件到另一文件夹中
    【转】fscanf 跳过空格,读取一行
    caffe配置NCCL
    caffe实现多任务学习
    mysql 2
    mysql 1
    mysql
    jQuery
  • 原文地址:https://www.cnblogs.com/hi3254014978/p/10015529.html
Copyright © 2020-2023  润新知