Значение указателя неожиданно становится нулем
Если убрать // c 55 строки, то почему то в конце он выводит значение 0, вместо 760.
/*6- 2005
используя процедуру процедуру произведения двух матриц, найдите произведения трех матриц A(3, 4), B(4,3), C(3,3)
*/
#include <iostream>
using namespace std;
int* Umnozh(int M1[], int M2[], int* prov, int r1, int Sto1, int r2, int Sto2)
{
cout<<M1;
cout<<"M1[0][0]: "<<*M1;
int Newm[r1][Sto2];
for (int i=0; i<r1; i++)
{
for (int z=0; z<Sto2; z++) Newm[i][z]=0;
}
int a=0;
int b=0;
int x=0;
int y=0;
for (int str1=0; str1<r1; str1++)
{
for (int stolb1=0; stolb1<Sto1; stolb1++)
{
for (int sstolb3=0; sstolb3<Sto2; sstolb3++)
{
a= *(M1+stolb1+str1*Sto1);
b= *(M2+stolb1*Sto2+sstolb3);
Newm[str1][sstolb3]= Newm[str1][sstolb3]+ a*b;
}
}
}
cout<<endl;
//Проверка результата умножения:
for (int i=0; i<r1; i++)
{
cout<<endl;
for (int o=0; o<Sto2; o++) cout<<Newm[i][o]<<" ";
}
cout<<endl;
int *c= &Newm[0][0];
return c;
}
int main()
{
int A[3][4]={1,2,3,4,21,22,23,24,31,32,33,34};
int B[4][3]={56,57,58,66,67,68,76,77,78,86,87,88};
int C[3][3]={101,102,103,61,62,63,1,2,3};
int *z=Umnozh(&A[0][0], &B[0][0], NULL, 3, 4, 4, 3);
//int *r=Umnozh(z, &C[0][0], NULL, 3, 3, 3, 3); //55 строка!
cout<<*(z); //Должен выводить 760
return 0;
}