そのため、標準入力から任意の数の整数を受け取るプログラムを作成しており、入力用に十分なスペースを動的に割り当てる必要があります。
これは、次の 2 つの理由を除いて、私にとっては問題になりません。1) 入力の数を指定していないため、入力の数と一緒に calloc を使用することはできません。2) realloc を使用して配列のサイズを大きくすることはできません。
入力に含まれる整数の数をカウントし、それらを再度読み取って配列に入れる方法はありますか?
そのため、標準入力から任意の数の整数を受け取るプログラムを作成しており、入力用に十分なスペースを動的に割り当てる必要があります。
これは、次の 2 つの理由を除いて、私にとっては問題になりません。1) 入力の数を指定していないため、入力の数と一緒に calloc を使用することはできません。2) realloc を使用して配列のサイズを大きくすることはできません。
入力に含まれる整数の数をカウントし、それらを再度読み取って配列に入れる方法はありますか?
まず、なぜ使えないのですrealloc()
か?
本当にできない場合は、リスト要素が次のように定義された整数のリンクされたリストを作成することを検討してください。
typedef struct tNumber
{
int Number;
struct tNumber* Next;
} tNumber;
入力に含まれる整数の数をカウントし、それらを再度読み取って配列に入れる方法はありますか?
ありません。
リンク リストを使用します。既存のデータを移動することなく、必要に応じて新しい領域を割り当てることができます。
入力に含まれる整数の数をカウントし、それらを再度読み取って配列に入れる方法はありますか?
私が考えることができる唯一の方法は、tmpfile()
カウントしrewind()
ながらファイルにコピーしてから、もう一度読み取ることです。