Является ли плохой идеей хранить большие векторы в стеке?

Я работал над кучей программ для обработки изображений. ничего причудливого, в основном экспериментируя быстро и грязно. Данные изображения хранятся в векторах, которые объявляются в стеке (я стараюсь избегать необходимости использовать указатели, когда мне не нужно передавать данные). Я заметил, что некоторые из моих функций ведут себя очень странно, несмотря на бесчисленное количество отладки и шагов. Иногда отладчик выдавал мне ошибку, что он не может оценить определенную переменную, среди прочего. Вещи вообще просто не имеют смысла,и прошлый опыт говорит мне, что когда это происходит, это означает, что происходит какое-то переполнение или повреждение памяти. Первое, что пришло на ум, это то, что, вероятно, это было связано с тем, что я хранил много данных изображения в векторах.

Однако у меня сложилось впечатление, что векторы хранят свои фактические данные в куче, и поэтому я подумал, что не помешало бы иметь несколько из этих больших векторов в стеке. Неужели я ошибаюсь, думая об этом? Должен ли я выделять свои векторы и хранить их в куче, а не в стеке?

Спасибо,

5
задан 9a3eedi 7 June 2012 в 00:50
поделиться