Получение ошибки сегментации, когда два двумерных массива 512x512 объявлены в c ++ - PullRequest
0 голосов
/ 16 ноября 2018

Моя main() функция - -

int main(int argc, char *argv[]) {
    std::cout << "Hello, World!" << std::endl;
    int real[512][512] = {0};
    int imaginary[512][512] = {0};
    return 0;
}

Она дает мне segmentation fault, но если я закомментирую один из 2D-массивов, он будет работать.Я работаю с изображениями, и ранее массив 256x256 работал, но я не знаю, почему он выдает эту ошибку.

1 Ответ

0 голосов
/ 16 ноября 2018

Возможно, вам не хватает места в стеке, так как массивы довольно велики. (Так что это очень подходящий вопрос для переполнения стека :-))

Переместите объявления из основной функции, чтобы вместо них массивы помещались в обычную память.

Смотри, например, здесь для получения дополнительной информации:

https://craftofcoding.wordpress.com/2015/12/07/memory-in-c-the-stack-the-heap-and-static/

...