【发布时间】:2014-07-06 08:47:13
【问题描述】:
我编写了一个使用双精度矩阵的 C 代码:
double y[LENGTH][4];
LENGTH=200000 我没问题。
我必须将行数增加到LENGTH=1000000,但是当我输入这个值并执行程序时,它会返回分段错误。
我尝试使用malloc分配更多内存:
double **y = (double **)malloc(LENGTH * sizeof(double*));
for(int i = 0; i < LENGTH; i++){
y[i] = (double *)malloc(4 * sizeof(double));
}
我运行上面的代码,经过几秒钟的计算,它仍然给我“分段错误”。 谁能帮帮我?
【问题讨论】:
-
malloc返回一个void *,而不是指向指针的指针。 -
如果你知道为什么要写
(double **)malloc? -
哪一行出现了段错误?
-
[1] 4085 分段错误./pendolo_rk4_caos_G.out
标签: c arrays matrix double malloc