2017-05-13 7 views
1

私は文字列を格納するC言語の配列を持っています。この配列に動的に追加できる必要があります。この配列のインデックスを別の変数に格納するのは良い方法ですか、これを行うにはもっと良い方法がありますか?ここに私のコードです。この配列に文字列を追加する配列のインデックスをCに含めることをお勧めしますか?

まず定義し、これらの変数

char x[10][10]; 
int x_index = 0; 

strcpy(x[x_index], "hello"); 
x_index += 1; 
strcpy(x[x_index], "world"); 
x_index += 1; 
+1

アレイがいっぱいになったらどうしますか? –

+0

@SebastianWallaこのコードはもちろん、if(x_index <= 10)というプロダクションでの例です。 –

答えて

1

それが何であるので、あなたは、配列の長さのインデックスを呼び出す必要があります:それはあります配列内の有効なエントリの数。他のエントリもありますが、アクセスしないでください。

現在のサイズを把握することが必要な場合がほとんどです。それ以外の場合は、次のアイテムを追加することはできません。 Cでは、これは余分な変数で行わなければなりません。

長さが配列のサイズ(例では10)を超えていないことを確認してください(配列と長さが一致していることを確認してください)。多くの場合、あなたは両方を追跡する必要があり、長さや大きさは

if (xlen < XSIZE) strcpy(x[xlen++], str); 

コンパイル時一定にすることができる大きさ、(あなたはもちろんの10文字のバッファを、オーバーフローしないように注意する必要があります。)

+0

これは完璧です、助けてくれてありがとう。 –

0

とにかくすべての要素を解析する必要があり(挿入しないで解析する)配列の場合、配列の末尾に特別な値を入れるとよいでしょう。停止するときに解析ループに指示する。

関連する問題