//why when we make dymanic array we don't write this code
int row,column;
cout<<"Number of rows : ";
cin>>row;
cout<<"Number of columns : ";
cin>>column;
int matrix_1[row][column] , matrix_2[row][column];
//And write this code
int size;
cin >> size;
int *array = newint[size];
delete [] array;
Because that syntax is used for arrays allocated on the stack. Dynamic arrays have semantics different from those of stack arrays. Most importantly, a function is capable of returning a dynamic array it has allocated.