c++ - delete指针错误
高洛峰
高洛峰 2017-04-17 11:54:40
[C++讨论组]

情况如下:

class mymatrix{
public:
    mymatrix(int x,int y);
    ~mymatrix();
    Type **m;
    int x,y;
    bool flag;
};
mymatrix::mymatrix(int x, int y){
    if((x!=0)&&(y!=0)){
        m=new Type*[y];
        for(int i=0;i<y;i++){
            m[i]=new Type[x];
        }
        this->x=x;
        this->y=y;
        flag=false;
    }else{
        flag=true;
    }
}
mymatrix::~mymatrix(){
    for(int i=0;i<y;i++){
        delete[] m[i];
    }
    delete[] m;
}

在最后那个delete[]哪里,每次delete mymatrix时,总会有
未处理的异常: 0xC0000005: 读取位置 0xfeeefee2 时发生访问冲突
求大神帮忙改错

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
PHP中文网

看起来是在 x == 0y == 0 的时候 m 没有初始化,析构函数就会去 delete 一个未初始化的内存。

建议翻翻 C++ Primer,不光是这个问题,构造函数写法和其他基本的用法还得多补补课。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号