Witam
Mam 2 pytania.
- dlaczego instrukcja ((((i*M)) + j)) = 69; jest błędna ?? ponieważ 2krotnie dokonuje wyłuskanie..
- Czy destruktor jest dobrze zrobiony ??
//Program dynamicznie tworzy macierz dwu wymiarową, gdzie M to ilość wierszy, a N ilość kolumn
#include <iostream>
using namespace std;
class Macierz
{
int **iloscWierszy;
int M, N;
public :
Macierz(int M , int N);
void wypiszMacierz();
~Macierz();
};
Macierz::~Macierz()
{
for(int i = 0; i < M; ++i)
{
delete[] iloscWierszy[i];
}
delete[] iloscWierszy;
}
void Macierz::wypiszMacierz()
{
for(int i = 0; i < M; ++i)
{
for(int j = 0; j < N; ++j)
{
cout << iloscWierszy[i][j] << " ";
}
cout << endl;
}
}
Macierz::Macierz(int M = 0, int N = 0)
{
this->M = M;
this->N = N;
iloscWierszy = new int*[M];
for(int i = 0; i < M; ++i)
{
*(iloscWierszy + i) = new int[N];
}
// zerownaie macierzy
for(int i = 0; i < M; ++i)
{
for(int j = 0; j < N; ++j)
{
iloscWierszy[i][j] = 69;
//(*((*(i*M)) + j)) = 69;
}
}
}
int main()
{
Macierz m(3,3);
m.wypiszMacierz();
return 0;
}
Dziękuje z góry za pomoc :)
Adam