【发布时间】:2018-10-13 06:17:07
【问题描述】:
我正在编写一个程序,其中我采用 2 个一维数组并以最简化的形式 Ax=b 生成一个矩阵。
这部分函数接受数组 A 和 b。 A 是 A[n*n],b 是 b[n]。在本节中,我尝试组合这两个数组,使其看起来像一个实际的矩阵。
但是,如果 n 大于 1023,则此代码有效,则在调用 main 函数时会导致分段错误。我想知道是否有更好的方法来做到这一点。当我尝试使用 GDB 调试器时,它停在Y[i][j] = A[k]; 行,所以我认为这是需要修复的问题
int linsolve ( int n, double A[], double b[], double x []) {
double Y[n][n+1]; //Creating multidimensional matrix
int k = 0;
// Turns the two one dimensional array into one multidimensional
for (int i=0; i < n; i++){ //iterating row
for (int j=0; j < n; j++){ // per column
Y[i][j] = A[k]; // adding from array A to Y
k++;
}
Y[i][n] = b[i]; // adding from Array b to Y
}
【问题讨论】:
-
A 是矩阵对吧?
标签: c arrays matrix segmentation-fault