我正在为CFD 3D解算器编写代码,程序运行的是小尺寸的3d矩阵,但它显示了大尺寸的分段故障

时间:2015-10-26 10:42:23

标签: c++ c arrays 3d

我以这种方式定义数组:

double uo[n+2][m+2][n1+2] , 
       vo[n+2][m+2][n1+2] , 
       wo[n+2][m+2][n1+2] ,
       du[n+2][m+2][n1+2] , 
       dv[n+2][m+2][n1+2] ,
       dw[n+2][m+2][n1+2] ,  
       w1[n+2][m+2][n1+2] , 
       z1[n+2][m+2][n1+2] ,
       z[n+2][m+2][n1+2]  ;

一旦我将其设为static double,则错误将被删除,但它会继续运行并且不会终止。

1 个答案:

答案 0 :(得分:1)

如果mn变大,您将获得stackoverflow,因为您正试图占用堆叠中的大量空间。 应使用malloc()

等函数在堆中完成动态分配