Я искал эту ошибку и нашел много. к сожалению, ни одна нить не помогла мне.Другой std :: bad_alloc в ячейке памяти
У меня есть файлы изображений, которые я сохраняю в array
или vector
или что-то еще.
После приблизительно 1,8 ГБ (~ 1439 изображений) происходит ошибка std::bad_alloc
в памяти. Поэтому я попытался объявить array
по-разному, но каждый раз, когда возникает такая же ошибка.
Image* img;
Image img[180000];
Image* img = new Image[180000]
vector<Image> img;
(180k будет 1 минута кадров). Его не очень важно записывать 1 минуту, но было бы неплохо сохранить более ~ 1439 кадров. Или, по крайней мере, понять, почему возникает эта ошибка или, скорее, она возникает при 1,8 ГБ.
Может быть, кто-нибудь может мне помочь или объяснить?
PS: Я использую 32bit System
Проблема заключается в том, время для сохранения изображений в папке или что-то нужно, чтобы долго. Возможно, мне нужно найти сжатие, которое позволяет мне сохранить только необходимую информацию об изображении в массиве, а затем я смогу восстановить кадры, когда закончится.
Я слышал, что вы можете преобразовать изображение только в x и y "линии", которая содержит всю эту информацию. Но как это работает, это еще одна проблема.
Ответы от Марка Ингрэма были именно тем, что мне нужно для понимания проблемы. Спасибо за это
изменить: о, я вижу, я объяснил, что моя проблема не достаточно. У меня не было изображений и загружаю их в мою программу. У меня есть камера, которая записывает кадр с частотой 50 Гц, поэтому во время записи у меня нет времени для сохранения кадров.
Существует не более 1,8 ГБ непрерывной памяти для размещения 'img [180000]'. Вот и все. – Jon
Вам действительно нужны все изображения одновременно? – doctorlove