删除并重新分配全局指针 - 段错误

时间:2013-04-11 13:54:21

标签: c++ segmentation-fault global-variables

我在test.h文件中: double *condmatrix - 全局变量 然后在主程序中我做:

cycle_start {
    proc1() {
    condmatrix = new double[maxdim];
    ....simple work with the array itself
    }
    proc2() {
    delete [] condmatrix;
    }
}//cycle finish

这给了我一个段错误。我尝试使用[]语法删除,没有和其他方式,它仍然给出了段错误。 Maxdim因循环而异。

1 个答案:

答案 0 :(得分:0)

好的,我发现我分配了两次指针,即:

condmatrix = new double [maxdim];
condmatrix = new double [maxdim];
delete [] condmatrix;

我知道这不应该导致问题,但显然它确实如此,因为在重写代码分配一次后,它完美无缺。也许有一些内存损坏,我偶尔会修复。