私は割り当てに取り組んでいました(別の質問の詳細)。その一環として、配列のサイズを増やしていました。そして、配列を初期化しようとすると、次のことがわかりました。
int arr[2097152]; // 8MB
セグメンテーション違反が発生しました...大きすぎる配列を宣言しようとしているためだと思いますか? 次に、これを回避する方法が を使用することであることがわかりましたmalloc
。しかし、C は初めてです (主に JavaScript/Python/Java を使用します...)。ポインターなどで非常に混乱します...
配列を 8MB と宣言しました。
int *arr = malloc (MBs * 1024 * 1024 / sizeof(int)); // MBs = 8
しかし今...どうやってアクセスしたり、書き込んだりするのですか? arr
アドレスを取得するように使用すると、使用する*arr
と最初の要素を取得しますか?