"Ошибка шины (образ памяти сброшен на диск)" при запуске кода на c++
Честно я плохо разбираюсь в c++, знаю его примерно на олимпиадном уровне и каких-то тонкостей c++ не знаю. Пытаюсь решить задачу, написал такой вот код:
#include <iostream>
#include <string>
using namespace std;
int main() {
int n,m;
string sosedi1[n][m];
string sosedi2[n][m];
int t;
cin >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; i++) {
cin >> t;
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> sosedi1[i][j];
}
}
int a,b;
cin >> a >> b;
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
cin >> sosedi2[i][j];
}
}
int result = 0;
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
if (sosedi2[i] == sosedi1[i]) {
continue;
} else {
result++;
}
}
}
cout << result;
}
Компиляция не выдает ошибок, а вот при запуске кода пишет:
Ошибка шины (образ памяти сброшен на диск)
Использую fedora 42 и компилятор g++
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Этого
int n,m;
string sosedi1[n][m];
string sosedi2[n][m];
уже достаточно. Какую память должен выделить компилятор, если значения n и m во время компиляции неизвестны?
Ох уж это нестандартное расширение g++, позволяющее писать такие ужасы... :(