Я пытаюсь сейчас объявить массив больших символов. Я использую массив символов как растровое изображение (как на карте булевых, не тип файла изображения). Следующий код генерирует ошибку компиляции.Объявление массива больших символов в C++
//This is code before main. I want these as globals.
unsigned const long bitmap_size = (ULONG_MAX/(sizeof(char)));
char bitmap[bitmap_size];
Ошибка переполнения в размерности массива. Я понимаю, что я пытаюсь, чтобы мой процесс потреблял много данных и что может быть какой-то предел, который мешает мне это делать. Мне интересно, я делаю синтаксическую ошибку или мне нужно запрашивать больше ресурсов из ядра. Кроме того, я не заинтересован в создании растрового изображения с некоторым классом. Спасибо за ваше время.
EDIT ULONG_MAX очень сильно зависит от используемой вами машины. На конкретной машине я составлял свой код, на нем было более 4,2 миллиарда. В общем, я бы не стал использовать эту константу как константу, по крайней мере, для выделения памяти.
Just FYI, 'sizeof (char)' всегда 1, поэтому разделение бессмысленно. –
вы знаете, что вы пытаетесь выделить 4 гигабайта памяти на 32-битной машине? – fazo
последовательные 4 гигабайта памяти – triclosan