我搜索了這種錯誤,發現很多。不幸的是沒有線程真的幫助我。內存位置的另一個std :: bad_alloc
我有我保存在array
或vector
或什麼的圖像文件。
經過約1.8 GB(〜1439圖像)後,出現內存位置的錯誤std::bad_alloc
。所以我試圖以不同的方式宣佈array
,但每次發生同樣的錯誤。
Image* img;
Image img[180000];
Image* img = new Image[180000]
vector<Image> img;
(180k將是1分鐘的幀)。記錄1分鐘並不重要,但保存超過1439幀將會很好。或者至少要理解爲什麼會出現這個錯誤,或者說爲什麼它發生在1.8 GB。
也許有人可以幫我解釋一下嗎?
PS:我使用的是32位系統
的問題是,時間將圖像保存的文件夾或一些需要長期。也許我必須找到一種壓縮方式,它可以讓我只保存陣列中圖像的必要信息,然後在完成後恢復幀。
我聽說你可以轉換一個圖像,只是在一個X和一個Y「行」,其中包含所有這些信息。但這是如何工作的另一個問題。
馬克英格拉姆的答案正是我需要理解的問題。謝謝你
編輯:哦,我看到我解釋我的問題不夠。我沒有圖像並將它們加載到我的程序中。我有一個攝像頭,記錄幀的頻率爲50Hz,因此在錄製時我沒有時間保存幀。
不超過1.8GB的連續內存分配'img [180000]'。這裏的所有都是它的。 – Jon
你是否真的需要同一時間的所有圖像? – doctorlove