Вызвано необработанное исключение: нарушение доступа для записи
Суть программы в том, чтобы вставлять новую строку после всех строк, в которых нет ни одного четного элемента
#include <iostream>
using namespace std;
int** creat(int& n, int& m) {
cout << "n =";
cin >> n;
cout << "m =";
cin >> m;
int** mas = new int *[2 * n];
for (int i = 0; i < n; i++) {
mas[i] = new int[m];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << "mas[" << i << "][" << j << "] = ";
cin >> mas[i][j];
}
}
return mas;
}
void print(int** mas, int n, int m) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << mas[i][j] << '\t';
}
cout << endl;
}
}
int main() {
int n, m, k;
int** a = creat(n, m);
int n2 = 2 * n;
print(a, n, m);
int* f = new int[m];
for (int i = 0; i < m; i++) {
cin >> f[i];
}
k = 0;
for (int i = 0; i < 2 * n; i++) {
for (int j = 0; j < m; j++) {
if (a[i][j] % 2 != 0) {
++k;
}
}
if (k != m) {
for (int u = n; u > i; u--) {
a[u] = a[u - 1]; // Ошибка вызывается на этой строке
}
++n;
a[i] = new int[m];
for (int p = 0; p < m; p++) {
a[i][p] = f[p];
}
}
}
print(a, n, m);
return 0;
}
Ответы (1 шт):
Автор решения: Адлет Адилханов
→ Ссылка
Тут все просто, это ошибка выходит тогда когда ты обрашаешься выходишь за рамки массива. Если я не ошибаюсь тут в цикле в котором ошибка ты обрашаешься к элеменут a[-1];