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;
上記のエラーが発生します。高さと幅の両方が 1500 の整数あたり 4 バイト (絶対的な最悪の場合) では、配列のサイズは 27MB になります。配列。何かアドバイス?