c - 矩阵生成器 - C 中的段错误

标签 c matrix segmentation-fault

我有以下生成对称矩阵的函数:

void genMatrix(int n, double A[n][n])
 {

int i,j;
int count=0;
for (i=0; i<n; i++)
for (j=i+1; j<n; j++)
    {
    count++;
    A[i][j]=count;
    A[j][i]=count;
    }

 }

当我使用这些参数调用函数时:

int n = 10000;
double A[n][n];
genMatrix(n,A);

它给我一个段错误,我不明白为什么。我也尝试只用 1 个值填充矩阵,但它没有改变任何东西。 可能是什么问题呢?使用更小的 n 值(如 1000),它工作正常。

最佳答案

您可能刚刚遇到堆栈溢出。该数组太大,不适合您程序的堆栈地址空间。

如果你在堆上分配数组你应该没问题,假设你的机器有足够的内存。

关于c - 矩阵生成器 - C 中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789571/

相关文章:

javascript - 如何在 webgl 中围绕 mousedrag 中的场景旋转(模拟相机在某个位置周围移动)

c - 为什么这个程序没有段错误?

c - 使单词小写的函数出现段错误

c - USB设备id表理解

python - 未正确附加矩阵

c - && CS50 的 C 语法

python - Matplotlib python 在颜色图中更改单一颜色

c - 分配给作为结构成员的指针会导致段错误

c - 如何通过我的函数将 "..."(可变长度 arg 列表)不变地传递给另一个函数?

c - 线程例程内的 malloc