У меня проблемы с передачей большого массива в функцию в C.
Я заявляю:
int image[height][width][3]={};
где высота и ширина могут быть как 1500. И когда я звоню:
foo((void *)image,height,width);
который объявлен следующим образом:
int *foo(const int *inputImage, int h, int w);
Я получаю ошибку ошибки сегментации. Что странно, если мои значения:
height=1200;
width=290;
Нет проблем, но когда они:
height=1200;
width=291;
я получаю указанную ошибку. При 4 байтах на целое число с высотой и шириной 1500 (абсолютный наихудший случай) размер массива будет 27 МБ, что не так уж и велико, и это не должно иметь большого значения, потому что я передаю только указатель на первый элемент массив. Любой совет?