Значение указателя неожиданно становится нулем

Если убрать // 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;
}

Ответы (0 шт):