1,QList<phy_simulator*> pList;为空不能append()追加,要先new,再用
QList<phy_simulator> pList为空时,确实不能调用 append() 方法。原因很简单,QList 是一个类对象,在 C++ 中,指针本身并不代表它指向的对象。因此,当你有一个指向 QList<phy_simulator> 类型的指针时,必须确保它指向一个有效的 QList 实例。
关键问题:
如果 pList是 nullptr(空指针),那么你尝试调用 append() 时,程序会崩溃,因为 nullptr 没有实际的内存空间来执行任何操作。
解决方法:
在使用指针之前,应该确保该指针已经指向了一个有效的 QList<phy_simulator*> 实例。通常,你可以通过 new 操作符来创建一个实例,或者如果是局部变量,可以直接创建它。
示例代码:
- 通过 new 动态分配内存
QList<phy_simulator*> pList= new QList<phy_simulator>();
phy_simulator *infactModule = new phy_simulator();
pSimulatorDataQList->append(infactModule); // 现在可以成功调用 append()
在这种方法中,你通过 new 分配了 QList 的内存,这样 pSimulatorDataQList 就指向了一个有效的 QList 实例,可以调用 ap