【发布时间】:2018-02-25 06:59:06
【问题描述】:
int **matMult(int **mat1,int **mat2,int **res,int N){
static int i=0,j=0,k=0;
if(i>=N)
return 0;
else if(i<N)
{
if(j<N)
{
if(k<N)
{
res[i][j]+=mat1[i][k]*mat2[k][j];
k++;
matMult(mat1,mat2,res,N);
}
k=0;
j++;
matMult(mat1,mat2,res,N);
}
j=0;
i++;
matMult(mat1,mat2,res,N);
}
return res;
}
输出: 输入 N 的值:64 分段错误(核心转储)
64 大小后显示此错误
【问题讨论】:
-
你试过 N = 2 吗?可能更容易找到问题。
-
如果你要乘以
8192 x 8192大小的矩阵,不要使用递归。它很可能会导致堆栈溢出。改用更简单、更容易理解的循环方法。 -
@RSahu 很可能会导致堆栈溢出。 - 是的。堆栈溢出,或此页面上的问题,或两者兼而有之。 :)
标签: c