配列サイズが可変の C での動的配列割り当て
動的配列とも呼ばれる可変サイズの配列は、標準 C では課題となります。次のプログラムを考えてみましょう:
<br>int siz = 0;<br>int n = 0;<br>FILE* picture;</p> <p>picture = fopen(" test.jpg", "r");<br>fseek(picture, 0, SEEK_END);<br>siz = ftell(picture);</p> <p>char Sbuf[siz];<br>fseek(picture) 、0、SEEK_SET); //ファイルの先頭に移動<br>while (!feof(picture)) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">n = fread(Sbuf, sizeof(char), siz, picture); /* ... do stuff with the buffer ... */ /* memset(Sbuf, 0, sizeof(Sbuf)); */
}
上記のコードは、変数 siz で決定されるサイズの文字の配列を割り当てます。ただし、標準 C では、配列サイズは定数でなければなりません。ここで疑問が生じます: コードのコンパイルを可能にするために、siz を正しく宣言するにはどうすればよいでしょうか?
残念ながら、標準 C では可変サイズの配列を直接宣言する方法はありません。ただし、いくつかの代替方法が存在します。
以上が標準 C で可変サイズの配列を宣言するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。