私は を持っています私Structure
はStructure
を持っていArray
ます
テキスト ファイルを読み込んでから、それを「Array Into Structure」で開きます。
私が持っているのは、名前、姓、結果のリストです。
行番号を見つけて、削除する行を選択して削除する最良の方法は何ですか? 私は言っArray
たStructure
。
使用できることはわかってmemmove
いrealloc
ますが、これらをどのように使用すればよいですか?
できることは、次の要素を先頭に移動し、「論理的な」長さを減らすことだけです。論理的な長さは物理的な長さとは異なります。物理的な長さは、割り当てられたメモリの量に基づいて、配列が保持できる要素の最大数です。
したがって、要素で始まる配列を想定するarray
と、 :th 要素count
を削除するコードは次のようになります。n
if( n < count - 1)
memmove(array + n, array + n + 1, ((count - n) - 1) * sizeof *array);
--count;
これにより、次の要素がコピーされ (最後の要素を削除する場合を除きます。この場合、コピーするものはありません)、論理長が減少します。