私は構造体の配列を持っていて、いくつかの条件に一致するエントリを持つ構造体を持つエントリを削除したいとします。Cで動的に割り当てられた配列メンバーを削除する
この配列はmallocで動的に割り当てられますが、要素数は別の変数に保持されます。
エントリを削除するにはどうすればよいですか?
私は
for (i = pos; i < arr_len; i++) {
arr[i] = arr[i+1];
}
arr_len--;
と思っています。しかし、これは私が実際にあまり必要としながら、配列にメモリの同じ量を残し、孤児(一種の)最後のエントリ。
このような状況では、受け入れられた練習を再発行していますか?この場合、memcpyをreallocしますか? (割り当てられたメモリを1ブロック短縮する)。
最後の要素アクセスのキャッチに感謝します。私はこの特定のケースを紙に書いていますが、配列が0からインデックスされていることを忘れてしまっても、それを見逃してしまいました! – Karolis