【发布时间】:2013-11-10 07:01:24
【问题描述】:
我在 iOS 项目的 Xcode 设置中运行以下代码,并在第一次迭代本身即 j = 0 的第二个 fscanf 命令即 fscanf(fid, "%d", &fIndex); 上获取 EXC_BAD_ACCESS(代码 = 2,地址 0x30);
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
【问题讨论】:
-
这看起来像 C++,因此它不是 Objective-C 或 C。
-
fscanf是 C 库的一部分,我添加了 Objective-C 以防万一这种特定于语言 + Xcode 组合的东西
标签: c++ objective-c c xcode5