👤
a fost răspuns

Cum se rezolva eroarea la codul acesta:

#include

#include

using namespace std;

int main()

{





int rows, colums;

cout << "row= ";

cin >> rows;

cout << "colums= ";

cin >> colums;


int *Matrix = (int*)malloc(rows * colums * sizeof(int));


for (int i = 0; i < rows; i++)

{

for (int j = 0; j, colums; j++)

{

cout << "Matrix[" << i << "][" << j << "]= ";

cin << Matrix[i][j];

}

}

for (int i = 0; i < rows; i++)

{

for (int j = 0; j, colums; j++)

{

cout << Matrix[i][j];

}

cout << endl;

}

free(Matrix);

return 0;

}


Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int rows, colums;

   cout << "row= ";

   cin >> rows;

   cout << "colums= ";

   cin >> colums;

   int **Matrix = (int **)malloc(rows * sizeof(int *));

   for (int i = 0; i < rows; i++)

   {

       Matrix[i] = (int *)malloc(colums * sizeof(int));

       for (int j = 0; j < colums; j++)

       {

           cout << "Matrix[" << i << "][" << j << "]= ";

           cin >> Matrix[i][j];

       }

   }

   for (int i = 0; i < rows; i++)

   {

       for (int j = 0; j < colums; j++)

           cout << Matrix[i][j];

       cout << endl;

   }

   for (int i = 0; i < rows; i++)

       free(Matrix[i]);

   free(Matrix);

   return 0;

}

Explicație:

În primul rând ștergi cele două include-uri și adaugi un #include <iostream>.
După foloseai din câte am văzut << cu cin, pentru cin folosești >>.

După în for, de exemplu „for (int j = 0; j, colums; j++)” trebuie să-l scrii ca și „for (int j = 0; j < colums; j++)”.

Când aloci matricea dinamică prima dată aloci un array de dublu pointeri ( fiecare pointer „va arăta” spre o linie a matricii ( care e un alt array de intregi )) și la final eliberezi matricea alocată.