Exc_bad_access Ошибка в fscanf

Я запускаю следующий код в настройке Xcode для проекта iOS и получаю EXC_BAD_ACCESS (код = 2, адрес 0x30) на втором fscanf команда то есть fscanf(fid, "%d", &fIndex); в самой первой итерации, то есть с j = 0;

char word[wordLength]; // wordlength is set to 4
int numFiles = 0;
int fIndex = 0;
// create the word-fileIndex mapping
for(long i = 0; i < numWords; i++)
{
fscanf(fid, "%s%d", word, &numFiles);
vector<int> indexList(numFiles,0);
for(int j = 0; j < numFiles; j++)
{
fscanf(fid, "%d", &fIndex);
indexList[j] = fIndex;
}
wordIndexMap[word] = indexList;
}

Однако только для тестирования я добавил еще одно значение для сканирования в первом fscanf как это:

fscanf(fid, "%s%d%d", word, &numFiles, &fIndex);

И он работал нормально и считал правильное значение из файла.

Может ли кто-нибудь просветить меня, что здесь происходит?

Мой входной файл выглядит так:

abcd num_Index index1 index2 ….

например

1234 2 14 15
1235 3 5 2 6
1111 1 1

1

Решение

Я думаю, что вы должны установить wordLength до более чем 4, потому что вам нужно включить трейлинг '\0', В любом случае, вы должны быть осторожны при чтении вводимых данных и ограничивать количество символов, которые вы читаете.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]