我有在Qt的SDK中的數組中的動態C++內存分配的一些問題......下面是我做的:如何在Qt C++中爲數組動態分配內存?
int dx = 5;
QPoint * qPoint;
qPoint = new QPoint[dx+1];
然而,當我嘗試調試代碼,程序只是崩潰當它試圖執行第三行....任何線索?
我有在Qt的SDK中的數組中的動態C++內存分配的一些問題......下面是我做的:如何在Qt 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);
如果你想要的向量作爲指針。但Qt使用隱式內存共享的方式,因此您可以在大多數時間使用第一種方法。
http://doc.qt.io/qt-5/implicit-sharing.html#implicit-data-sharing
你似乎在做一些在C++標準中特別聲明的東西,不應該這樣做(動態數組)。在Qt的情況下,你可能想要做的就是使用QList。另請參閱關於通用容器的Qt文檔:http://doc.qt.io/qt-5/containers.html
它不應該在你的代碼的其他地方墜毀指向一個問題 – 2010-06-14 13:57:43