-2

私は を持っています私StructureStructureを持っていArrayます

テキスト ファイルを読み込んでから、それを「Array Into Structure」で開きます。

私が持っているのは、名前、姓、結果のリストです。

行番号を見つけて、削除する行を選択して削除する最良の方法は何ですか? 私は言っArrayStructure

使用できることはわかってmemmovereallocますが、これらをどのように使用すればよいですか?

4

1 に答える 1

1

できることは、次の要素を先頭に移動し、「論理的な」長さを減らすことだけです。論理的な長さは物理的な長さとは異なります。物理的な長さは、割り当てられたメモリの量に基づいて、配列が保持できる要素の最大数です。

したがって、要素で始まる配列を想定するarrayと、 :th 要素countを削除するコードは次のようになります。n

if( n < count - 1)
  memmove(array + n, array + n + 1, ((count - n) - 1) * sizeof *array);
--count;

これにより、次の要素がコピーされ (最後の要素を削除する場合を除きます。この場合、コピーするものはありません)、論理長が減少します。

于 2013-03-01T10:56:19.017 に答える