4
我正在學習C++,我需要一些關於如何在不使用指針時清理內存的建議。在我的應用程序中增加的內存
我有一個背景黑莓10應用它停止前具有3MB的內存限制,我的應用程序被停止,因爲達不到這個限制,我無法找到弄清楚爲什麼。
我縮小了的記憶給函數的增加 - 如果我不調用此函數的內存也不會增加。
該函數使用QVariant,QVariantList,QVariantMap,QString在創建類時(即QVariantMap映射)在函數外部聲明,在函數中訪問這些對象之前,我在每個函數上調用.clear()我的理解應該清理存儲的內存,我也在函數中使用int,這些函數也在其外部聲明。
的作用是相當大的,並呼籲其他功能,所以我下面提供的片斷我在做什麼的情況下,這顯然是錯誤給他人。
bindings.clear();
bindings["name"] = name;
result.clear();
result = sqlda->execute(sqlQueryz, bindings);
if (!sqlda->hasError()) {
if(!result.isNull()) {
list.clear();
list = result.value<QVariantList>();
recordsRead = list.size();
for(int iii = 0; iii < recordsRead; iii++) {
map.clear();
map = list.at(iii).value<QVariantMap>();
任何幫助表示讚賞。
你讀了多少條記錄('recordsRead'變量)? btw qt項目推薦一個[用於分析和內存檢查的工具列表](http://qt-project.org/wiki/Profiling-and-Memory-Checking-Tools)。試試Massi,它在這個列表中。 – UmNyobe 2014-10-16 10:13:15
recordsRead顯示爲1,這是正確的,因爲數據庫中只有一行。 – Anthony1234 2014-10-16 10:39:10
你不是唯一一個這樣的問題:http://supportforums.blackberry.com/t5/Native-Development/Headless-Apps-Databases-and-Memory/mp/2985760 – 2014-10-16 10:52:56