c++访问冲突写入位置0xCCCCCCCC
C++ Access violation writing location 0xCCCCCCCC
string guessingWord[89];
fstream wordList;
wordList.open("wordlist.txt");
for (int i = 0; i < 90; ++i){
wordList >> guessingWord[i];
}
wordList.close();
这段代码有什么问题,当我试图测试这段代码时,访问违反写入位置显示
声明大小为89的数组意味着有89个元素,有效的索引是0-88。你的循环从0到89;因此,您正在写过数组的末尾。
也就是说,你真的应该使用vector<string>
:
vector<string> guessingWord;
string temp;
while ( wordList >> temp )
guessingWord.push_back( temp );
数组guessingWord只有89个元素,索引范围为[0,88]
string guessingWord[89];
所以这个循环是无效的
for (int i = 0; i < 90; ++i){
wordList >> guessingWord[i];
}
应该有
for (int i = 0; i < 89; ++i){
wordList >> guessingWord[i];
}
为避免此类错误,总是对幻数使用符号名称。定义
就足够了size_t N = 89;
string guessingWord[N];
//...
for (int i = 0; i < N; ++i){
wordList >> guessingWord[i];
}
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 创建 2D 数组0xCCCCCCCC访问冲突写入位置
- 0xC0000005:访问违规写入位置0xcccccccc
- 访问冲突读取位置0xcccccccc
- 访问违规读取位置 0xCCCCCCCC.using bool & unsigned short
- C++:xxx中0x00101890处未处理的异常:0xC0000005:读取位置0xcccccccc的访问冲突
- 写入位置0xCCCCCCCC的访问冲突
- 访问冲突读取位置0xCCCCCCCC
- 链接表中读取位置0xCCCCCCCC错误
- 访问冲突读取位置0xcccccccc
- 访问冲突读取位置0xCCCCCCCC
- 访问冲突写入位置0xcccccccc
- c++访问冲突写入位置0xCCCCCCCC