0

コードが行列宣言に達したときに SIGSEGV を取得しましたが、それに関する情報があまり得られません。これは私のコードです:

void mascaraLaPlace(unsigned char Img[1200][1200][3],int Rx,int Ry){
  int x,y,a,b,c,d;
  int valorR,valorG,valorB;
  unsigned char copia[Rx][Ry][3];
  for (y=0;y<Ry;y++){//operations}

unsigned char copyia[Rx][Ry][3] でコードが停止し、SIGSEGV エラーが発生します。Windows witch でコード ブロックを使用しており、mingw スイートが付属しています。

4

1 に答える 1

4

Rx と Ry の値によっては、配列がスタックに対して大きすぎる場合があります。たとえば、両方が 2000 の場合、それは約 12 メガバイトであり、ほとんどの OS がデフォルトでスタック用に予約するよりもはるかに多くなります。

于 2013-11-03T00:24:38.897 に答える