C言語で配列から要素を削除する方法
C言語では、配列はサイズが固定されたコンテナで、動的に要素を削除することはできません。配列から要素を削除する必要がある場合は、次の方法があります:
- 削除対象以降の要素を、それぞれ手前に詰めて、削除対象を上書きする。
- 配列のサイズを記録する変数を設定し、要素を削除すると同時にサイズの変数を更新する。
配列から要素を削除する方法を示すサンプルコードは次のとおりです。
#include <stdio.h>
void deleteElement(int arr[], int size, int index) {
if (index >= size) {
printf("Invalid index\n");
return;
}
for (int i = index; i < size - 1; i++) {
arr[i] = arr[i + 1];
}
// 更新数组大小
size--;
// 打印删除元素后的数组
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
// 删除索引为2的元素(值为3)
deleteElement(arr, size, 2);
return 0;
}
上記コードを実行すると、出力が表示されます:
1 2 4 5
配列の要素3は削除されたことがわかります。削除後に配列のサイズが4に更新されたことに注意してください。