Я новичок в C++ и Microsoft Visual Studio, и сейчас я работаю над лабораторией для своего класса структур данных, я закончил свой код, но когда я создаю и запускаю свою программу, он выдает эту ошибку:Недостаточно памяти?
std::bad_alloc at memory location 0x0018C9C0.
Я искал эту ошибку, и обнаружил, что эта ошибка возникает, если для программы недостаточно памяти, или программа пытается выделить бесконечное количество памяти для чего-то. Я попытался выделить больше памяти в свойствах программы, но это, похоже, не помогло. Оглядываясь на мой код, я не могу найти ничего, что могло бы вызвать эту ошибку. Вот мой код для справки:
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int main() {
string line;
string value;
string linesArray[200];
int i = 0;
int j = 0;
int finalLine = 158;
getline(cin, line, '\n');
getline(cin, line, '\n');
/* First Line */
for (i; i < finalLine; ++i) {
getline(cin, line, '\n');
for (j; j <= 24; ++j) {
if (j = 0) {
line = line.replace(line.find(','), line.find_first_of(','), string(30 - line.find(','), ' '));
}
line = line.replace(line.find(','), line.find_first_of(','), string(20 - line.find(','), ' '));
}
linesArray[i] = value;
cout << linesArray[i] << endl;
}
return 0;
}
Я попытался создать указатель, чтобы найти адрес, который он показывает в ошибки, но я не мог найти его. Любая помощь приветствуется.
EDIT: Извините, что я не дал мне понять, мой входной файл является txt в формате csv. Я беру информацию, а в первом столбце каждой строки я помещаю 30 пробелов минус длина значения, а для остальных значений - 20 пробелов минус длина значения, если нет значения, в котором я поместите ноль с 19 пробелами.
Пример входных данных:
Albania,14,29365,43301,,,,,,,13,27867,41066,,,,,,,1,1498,2235,,,
'if (j = 0)' это явно неправильно. Возможно, вы имеете в виду 'if (j == 0)' – Ari0nhh
Просто деталь безопасности, но я предлагаю объявить finalLine как const, поэтому вы уверены, что он не расширяется где-то в цикле. (Насколько я вижу, это не так, но это скорее мера предосторожности, плюс это дает вам еще одну возможность беспокоиться) –
Ваш первый курс действий должен состоять в том, чтобы запустить ваш код в отладчике и определить, где в вашем коде возникает ошибка. – kfsone