myClass(int rows, int cols) {
sizeY = rows;
sizeX = cols;
field = new int* [sizeY];
for (int i = 0; i < sizeY; i++) {
field[i] = new int[sizeX];
}
for (int i = 0; i < sizeY; i++) {
for (int j = 0; j < sizeX; j++) {
field[i][j] = 0;
}
}
}
myClass myclass(3, 5); // создание массива размером 3*5
#include
class myClass {
private:
int sizeX, sizeY;
int** field;
public:
myClass() {
sizeX = 3;
sizeY = 3;
int** field = new int* [sizeY];
for (int i = 0; i < sizeY; i++) {
field[i] = new int[sizeX];
}
for (int i = 0; i < sizeY; i++) {
for (int j = 0; j < sizeX; j++) {
field[i][j] = 0;
}
}
}
void func() {
std::cout << field[1][1];
}
}
int main() {
myClass myclass;
myclass.func();
return 0;
}
#include
#include
#include
using namespace std;
class IntMatrix {
size_t rows;
size_t columns;
int** matrix;
public:
IntMatrix()
: rows(0), columns(0), matrix(nullptr) {}
~IntMatrix() {
if (matrix != nullptr) {
for (size_t i = 0; i < rows; ++i) delete[] matrix[i];
delete[] matrix;
matrix = nullptr;
rows = columns = 0;
}
}
bool create(const size_t rows, const size_t columns, int value = 0) {
auto tmp = new(nothrow) int*[rows];
if (!tmp) return false;
for (size_t i = 0; i < rows; ++i) {
tmp[i] = new(nothrow) int[columns];
if (!tmp[i]) {
for (size_t j = 0; j < i; ++j) delete[] tmp[j];
delete[] tmp;
tmp = nullptr;
return false;
} else {
for (size_t j = 0; j < columns; ++j) tmp[i][j] = value;
}
}
this->~IntMatrix();
matrix = move(tmp);
this->rows = rows;
this->columns = columns;
tmp = nullptr;
return true;
}
void fill_random(int a, int b) {
if (!matrix) return;
if (a > b) swap(a, b);
uniform_int_distribution<> uid(a, b);
mt19937 gen{ random_device()() };
for (size_t i = 0; i < rows; ++i) {
for (size_t j = 0; j < columns; ++j) {
matrix[i][j] = uid(gen);
}
}
}
void show(const streamsize width = 0) const {
if (!matrix) return;
for (size_t i = 0; i < rows; ++i) {
for (size_t j = 0; j < columns; ++j) {
cout << setw(width) << matrix[i][j] << ' ';
}
cout.put('\n');
}
}
};
int main() {
IntMatrix im;
if (im.create(4, 5)) {
im.show();
cout.put('\n');
}
if (im.create(3, 6)) {
im.fill_random(10, 99);
im.show(4);
}
}
При вызове функции func выдается ошибка о нарушении прав доступа. Как это можно исправить? Я пробовал гуглить, но так ничего и не понял