delete 类数组指针时可能出现的问题

来源:互联网 发布:php多文件上传代码 编辑:程序博客网 时间:2024/06/07 04:06

源文件

//---------------------------------【delete类数组指针异常】--------------------------------//  描述:在删除类指针的时候,如果用++来机械删除下一个指针,因为上一个指针被删除了,其地址值也会被改变//  如果在来进行++的话得到的就不是原来数组中所指向的下一个指针了。具体请看代码。//-----------------------------------------------------------------------------------------#include"head.h"int main() {    Point *p1 = new Point[2];    //-------------------------------【出错位置】-----------------------------------    //  描述:出错位置    //------------------------------------------------------------------------------    //释放了p1,p1所指向的地址会被改变    cout <<"p1="<< p1 << endl;    delete p1;     cout << "p1=" << p1 << endl;    //现在在来做++运算,计算出来的结果就对了。如果前一条代码没有释放那还是对的。    p1++;    delete p1;    return 0;}

头文件

#pragma once#include"iostream"using namespace std;class Point {private:    int x;    int y;public:    Point() {}    Point(int x,int y) :x(x), y(y) {}    Point* getThis() {        this->x = 100;        cout << "getThis:x=" << this->x <<" y="<< this->y << endl;        return this;    }};
0 0
原创粉丝点击