これが私のコードです
#include<stdio.h>
#define ROW 10000
#define COLUMN 10000
void hello(int arr[ROW][COLUMN]){
printf("hoho");
}
void main(){
int arr[ROW][COLUMN];
hello(arr);
}
さて、これによりセグメンテーション違反が発生します。私の質問は、関数呼び出しを行っている間、関数に渡されたすべての変数を保持するためにスタックが使用されていることを理解しているということです。これはOSのスタックですか?つまり、OS には、このために特別に設計された別のメモリ ブロックがありますか?
また、スタックのサイズは固定ですか?
このような大きな値を関数に渡さなければならない場合はどうすればよいでしょうか?