繁体   English   中英

fscanf中的Exc_bad_access错误

[英]Exc_bad_access Error in fscanf

我在iOS项目的Xcode设置中运行以下代码,并在第二个fscanf命令(即fscanf(fid, "%d", &fIndex); )上获得EXC_BAD_ACCESS(代码= 2,地址0x30 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

我认为您应该将wordLength设置为大于4,因为您需要包括结尾的'\\0' 无论如何,在读取这样的输入时,您需要小心,并限制要读取的字符数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM