cを使用して、構造体の配列にstuffを入力しようとしていて、その配列がいっぱいになると、配列のサイズを2倍にしてreallocを使い続けます。構造体の配列を再割り当てする方法
私は、これはすでに尋ねたが、私は、私は私の配列これらの質問がやった方法を作成していないと少し混乱取得していますので、誰かが明確にそれを説明することができ期待していたようにいくつかの質問があったことを知っています。
私は構造体
struct Data {
// Some variables
}
を持っており、reallocのために
struct Data entries[100];
int curEntries = 100;
int counter = 1; // index, I use (counter - 1) when accessing
を使用して配列を初期化、私は現在
if(counter == curEntries){ // counter = index of array, curEntries = total
entries = realloc(entries, curEntries * 2);
}
を使用している私は私がのreallocをキャストする必要があります知っています多分正しい?私はどれだけか、どのような私はそれをキャストするためのものだか分からないので、私は現在、「配列型で表現への割り当て」もちろん私にエラーを与えるものを、持っていない
ありがとう!
。そのようにそれにキャストしてみてください(2 * curEntries、(構造体データ*)エントリ) 'エントリ=(構造体データ*)reallocを、さらに' –
、私は一般的に 'malloc'とペアになって、この(ヒープに割り当て代わりのを見てきましたスタック)。なぜあなたはそれを使用していないのですか? –
配列は 'realloc'することはできません。 '構造体のデータエントリ[100];' - > '構造体データ*エントリ=のmalloc(100 *はsizeof *エントリー);' – BLUEPIXY