我似乎在使用calloc对2D数组的内存分配有问题 .

为数组分配第二维时,calloc会在IDE外部作为独立的可执行文件崩溃,但在调试时可以正常工作 . 我已经走了我能想到的一切,并且为什么会发生这种情况而感到难过;特别是几天前工作正常的时候 . 这似乎是一种不会停止的自发故障 .

代码处于单独的函数中,被称为多次 .

O = (double**)calloc(3*cc,sizeof(double*));
for (r = 0; r < 3*cc; r++){
    printf("Row: %d ",r);
    printf("1.Addy: %p ",&O[r]);
    O[r] = (double*)calloc(4,sizeof(double));
    printf("2.Addy: %p\n",&O[r]);
}

我也尝试过使用不同形式释放内存:

for (r = 0; r < 3*c; r++)
        free(O[r]);

free(O);

但他们只是在不同点崩溃 . 以及当内存未被释放时 .

这是它在每次调用期间分配的内存地址的屏幕截图,它们似乎都被释放并正确地重用,但随后崩溃 . 如果有人能告诉我这是最好的 .

Memory locations