C 中可變數組大小的動態數組分配
可變大小的數組,也稱為動態數組,對標準C 提出了挑戰考慮以下程序:
<br>int 大小= 0;<br>int n = 0;<br>FILE* 圖片;<p>圖片= fopen("test.jpg", "r");<br>fseek(圖片, 0, SEEK_END) ; <br>大小= ftell(圖);</p><p>char Sbuf[大小];<br>fseek(圖片, 0, SEEK_SET); //到檔案的開頭<br>while (!feof(picture)) {</p><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中文網其他相關文章!