Я попытался воспроизвести ошибку в g++ 8.2.0
, но выдает другую, но ошибку компоновщика:
/tmp/cceGsEkP.o: In function `__static_initialization_and_destruction_0(int, int)':
temp.cxx:(.text+0x60): relocation truncated to fit: R_X86_64_32 against `.bss'
temp.cxx:(.text+0x6f): relocation truncated to fit: R_X86_64_32 against `.bss'
Выше функция отвечает за распределение статической памяти перед основной. Поскольку массиву выделяется память непрерывно, int global[10000][10000]
может быть возможным из-за потребности в памяти около 300 МБ, но
Вместо этого вы можете:
- Попробуйте уменьшить размерность, которая потребует от вас удаления избыточной информации, которая не будет использоваться в дальнейших вычислениях.
- Если вы не можете уменьшить размер, но не будете использовать все состояния, тогда вы можете использовать что-то вроде
std::map
.