C言語で配列から要素を削除する方法

C言語では、配列はサイズが固定されたコンテナで、動的に要素を削除することはできません。配列から要素を削除する必要がある場合は、次の方法があります:

  1. 削除対象以降の要素を、それぞれ手前に詰めて、削除対象を上書きする。
  2. 配列のサイズを記録する変数を設定し、要素を削除すると同時にサイズの変数を更新する。

配列から要素を削除する方法を示すサンプルコードは次のとおりです。

#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に更新されたことに注意してください。

コメントを残す 0

Your email address will not be published. Required fields are marked *