这是一个实现矩阵相乘结果的C++程序,用了动态二维数组的申请,如何输出结果老是乱码?莫非有关问题出在动态数组申请中,其作用域的局限性吗?高手赐教,多谢

这是一个实现矩阵相乘结果的C++程序,用了动态二维数组的申请,怎么输出结果老是乱码?莫非问题出在动态数组申请中,其作用域的局限性吗?高手赐教,谢谢!
这是我打得程序:
#include<iostream>
#include<iomanip>
#include<cstdlib>
using namespace std;
double **a,**b,**c;
void multimatrix(double **&Array1,int row1,int col1,
double **&Array2,int row2,int col2,
double **&Array3,int row3,int col3);
int main()
{int i,j,m,n;
cout<<"the col of matrix A must equal to the row of matrix B:"<<endl;
cout<<" PLease input the row and col of matrix A:\n";
cout<<"A's row= ";cin>>i;
cout<<"A's col= ";cin>>j;
cout<<"B's row= ";cin>>m;
cout<<"B's col=";cin>>n;
if(j!=m) abort();
a=new double*[i];
b=new double*[m];
c=new double*[i];
for(int s1=0;s1<i;s1++)
a[s1]=new double[j];
for(int s2=0;s2<m;s2++)
b[s2]=new double[n];
for(int s3=0;s3<i;s3++)
c[s3]=new double[n];
cout<<"Please input A:\n";
for(int p1=0;p1<i;p1++)
for(int p2=0;p2<j;p2++)
cin>>a[p1][p2];
cout<<"Please input B:\n";
for(int p3=0;p3<m;p3++)
for(int p4=0;p4<n;p4++)
cin>>b[p3][p4];
multimatrix(a,i,j,b,m,n,c,i,n);
cout<<"The C is:\n";
for(int t1=0;t1<i;t1++)
{
for(int t2=0;t2<n;t2++)
cout<<c[t1][t2]<<" ";
cout<<endl;
}
}
void multimatrix(double **&Array1,int row1,int col1,
double **&Array2,int row2,int col2,
  double **&Array3,int row3,int col3)
{
for(int k1=0;k1<row3;k1++)
for(int k2=0;k2<col3;k2++)
{
for(int k3=0;k3<col1;k3++)
Array3[k1][k2]+=Array1[k1][k3]*Array2[k3][k2];
}
}


------解决方案--------------------
C/C++ code

void multimatrix(double **&Array1,int row1,int col1,
                 double **&Array2,int row2,int col2,
                 double **&Array3,int row3,int col3)
{
    for(int k1=0;k1<row3;k1++)
        for(int k2=0;k2<col3;k2++)
        {
            Array3[k1][k2] = 0;  //赋值0
            for(int k3=0;k3<col1;k3++)
                Array3[k1][k2]+=Array1[k1][k3]*Array2[k3][k2];
        }
}

------解决方案--------------------
你申请好内存,但内存中的数据不是 0啊,你要清0才行;
Array3[k1][k2]+=Array1[k1][k3]*Array2[k3][k2]; 不清0相加数据就出错

探讨
你能跟我说为什么吗?我不是已经在主函数中申请好数组了吗?Array3[k1][k2]=0的赋值的作用是什么?谢谢!