Я брожу. я не могу поверить своим глазам! если я выделю матрицу во входе процедуры, после выхода из процедуры матрица будет удалена!
void input(int **x,int& m,int &n)
{
int i,j;
x=new int*[mx];
for(i=0;i<mx;i++)
x[i]=new int[nx];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&x[i][j]);
for(i=0;i<mx;i++)
for(j=0;j<nx;j++)
printf("%d",x[i][j]); - i see normal matrix
}
int main()
{
int **x,**y,mx,my,nx,ny;
int i,j;
input(x,mx,nx);
for(i=0;i<mx;i++)
for(j=0;j<nx;j++)
printf("%d",x[i][j]); - i receive a lot of stuff
return 0;
}
почему матрица была удалена? как я понимаю, я передаю ** х, это указывает на часть памяти, там матрица лежит. но когда я вернулся на главную, я потерял матрицу, я не удалил ее. почему я потерял матрицу?
если я сделаю это в основной функции
x=new int*[mx];
for(i=0;i<mx;i++)
x[i]=new int[nx];
все в порядке