c++跳出循环后数组的值变成了地址

来源:百度知道 编辑:UC知道 时间:2024/06/06 07:18:40
我用的动态二维数组作参数实现矩阵相乘,想返回结果的值:
void marth(int **a,double **t,int n,int m,int l)
{

int **c=new int*[n];
int i=0,j=0,k;
for( i=0;i<n;i++)
c[i]=new int[l];
for(i=0;i<n;i++)
for(j=0;j<l;j++)
c[i][j]=a[i][j];
for(i=0;i<n;i++)
for(j=0;j<l;j++) {
a[i][j]=0;
for(k=0;k<m;k++)
a[i][j]=a[i][j]+c[i][k]*t[k][j];////////跳出该层循环后数组a[i][j]的值不见了,变成了一个不知道的值
}
}

我找不到原因,望高手赐教!!!!!!1

你的c[i][k]和t[k][j]的初始值是多少你没给出正面能够得到结果呢?
先都赋好初值之后再计算就没问题了

不见了就找找啊, 搞不好在桌子底下.呵呵

不开玩笑了^_^, 没看出你的程序有什么影响a[i][j]值的问题, 也许有溢出
当然其他问题很多,比如没有释放c

还有就是,你的参数a调用方是怎样定义的, 如果是二维数组就有问题了
建议使用一维数组, 访问的时候这样 a[i*l+j]格式