「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 標準cで可変サイズ配列を宣言する方法は?

標準cで可変サイズ配列を宣言する方法は?

2025-04-15に投稿されました
ブラウズ:726

How Can I Declare an Array With a Variable Size in Standard C?

変数配列サイズ

ダイナミックアレイとしても知られる変動サイズのアレイで、標準Cとも呼ばれる変動サイズのアレイが、次のプログラムを検討してください。 0;

file* picture;


picture = fopen( "test.jpg"、 "r");
fseek(picture、0、seek_end);
siz = ftell(picture);


char sbuf [seeek); //ファイルの先頭に移動します
while(!feof(picture)){

n = fread(sbuf、sizeof(char)、siz、picture); / * ...バッファーで物事を行う... */ /* memset(sbuf、0、sizeof(sbuf)); */

}

n = fread(Sbuf, sizeof(char), siz, picture);
/* ... do stuff with the buffer ... */
/* memset(Sbuf, 0, sizeof(Sbuf)); */
上記のコードは、変数sizによって決定されたサイズの文字の配列を割り当てようとします。ただし、標準Cでは、配列サイズは定数でなければなりません。これは疑問を提起します:コードコンパイルを許可するためにSizを正しく宣言するにはどうすればよいですか?任意のサイズに簡単に拡張でき、その使用法は比較的簡単です。可変サイズの配列を作成するには、char* sbuf = new char [siz]を使用できます。ヒープにsiz文字の配列を割り当てるには。ただし、このアプローチは、メモリ管理の懸念(潜在的なメモリリークなど)を導入し、STD :: Vectorよりも適していません。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3