我在头文件中声明了一个数组,如下所示:
private:
int frames[10];
并在类构造函数中赋值,如下所示:
file.open(File);
if(file.is_open())
{
std::string line;
getline(file, line);
std::string param[10];
std::stringstream stream(line);
int n=0;
while(!stream.eof())
{
getline(stream, param[n], '$');
frames[n] = atoi(param[n].c_str());
n++;
}
file.close();
}
稍后在函数中使用此数组:
currentFrame++;
if(frames[currentAnimation] <= currentFrame)
{
currentFrame = 0;
}
当我运行我的代码时,我得到分段错误,并且 gdb 返回这个:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000402c22 in Sprite::update (this=0x7ffff6efe678 <main_arena+88>) at Sprite.cpp:93 93
if(frames[currentAnimation] <= currentFrame)
(gdb) bt
#0 0x0000000000402c22 in Sprite::update (this=0x7ffff6efe678 <main_arena+88>) at Sprite.cpp:93
#1 0x0000000000401fcb in main (argc=1, argv=0x7fffffffeb88) at main.cpp:146
我不确定我要去哪里错了,我认为错误就在这里。我不能真正发布所有代码,但如果您需要更多具体信息,请询问。
非常感谢您提前。