我在关闭运行的qt程序时出现:程序异常结束。
debug后提示:从底层发来一个信号,分段错误(似乎有野指针什么的都会出现这个错)。
光标指向了某个.cpp文件的析构函数,就下面那个位置。
key_board::~key_board()
{
delete ui;
}
其他没什么信息,可能是析构出错了,但不应该呀
我在关闭运行的qt程序时出现:程序异常结束。
debug后提示:从底层发来一个信号,分段错误(似乎有野指针什么的都会出现这个错)。
光标指向了某个.cpp文件的析构函数,就下面那个位置。
key_board::~key_board()
{
delete ui;
}
其他没什么信息,可能是析构出错了,但不应该呀
for(int o=7;o>=3;o--)//一共有5组八度,o是octave的手首字母,octave是八度的意思
{
keyBoard_octave[o]=new key_board(o);//参数o代表是第几组八度,从C3-C7
keyBoard_octave[o]->setParent(this);
}
以上是.cpp的内容,在头文件声明了key_board *keyBoard_octave[5];
本来给数组对象赋值应该从0-4,而我从7-3。很明显数组的越界。为什么会犯这么低级的错误呢?这个程序是和音乐相关,一般的音乐软件键盘有12个八度,我觉得用不上,要5个八度就行了,就是从C3-C7,于是下意识的就写了keyBoard_octave[3]keyBoard_octave[7]。
这类数组越界经常找不到,系统往往提示:
Signal received
The inferior stopped because it received a signal from the Operating System.
Signal name : SIGSEGV
Signal meaning : Segmentation fault
或者输出这种提示:FTH: (12792): *** Fault tolerant heap shim applied to current process. This is usually due to p