上午老师给了一个问题:
The inferior stopped because it received a signal from the Operating System.
原本是一位出现了野指针,查了之后才知道,是空指针问题。Qt里用debug调试,问题再这里:
这两个都是Qsetting出来的指针,且析构之前已经判空;
罪了,原因竟然是: 不能用 delete [] 析构!!!
惊讶,因为之前看见用 delete 析构可能会造成内存泄漏,因为它只能析构类的指针,而不能析构类内声明的变量 之后,我一直再用 delete[] 的方式析构。没想到栽在这里。最后我改成这样了:
———————奇怪知识分界线————————————————
知识一:在创建类时,变量不能用作声明数组的下标
bool *m_wLastDOutput = nullptr; //可以
bool m_wLastDOutput[NUmberOfO]; //不可以
原因如下:
这样是解决方法之一(在堆中存储):
知识二:拷贝类
没看懂,觉得以后会有用,先记录下来。