我在Qt SDK中的C++中为数组动态分配内存时遇到一些问题...这是因为我正在做的事情:
int dx = 5;
QPoint * qPoint;
qPoint = new QPoint[dx+1];
但是,当我尝试调试代码时,当它尝试执行第三行时,程序只是崩溃了....任何线索?
最佳答案
如果要正确使用Qt SDK,则必须使用QVector而不是C++数组或std数组。您可以使用QVector作为指针,也可以不使用,因为它在内部动态分配内存,所以这并不重要。
例如:
int dx = 5;
QVector<QPoint> points;
points.resize(dx + 1);
您也可以这样做:
QVector<QPoint> * points = new QVector<QPoint>(dx + 1);
如果您想将 vector 用作指针。但是Qt对 vector 使用隐式内存共享,因此您通常可以使用第一种方法。
http://doc.qt.io/qt-5/implicit-sharing.html#implicit-data-sharing