ダブルポインターの使い方


ダブルポインターを使用することで、複雑なデータ構造や関数の引数の値を変更することができます。以下に、ダブルポインターの使用例とコード例をいくつか紹介します。

  1. ポインターのスワップ: ダブルポインターを使用して、2つのポインターの値を交換することができます。以下は、ポインターをスワップするための関数の例です。

    void swapPointers(int ptr1, int ptr2) {
       int* temp = *ptr1;
       *ptr1 = *ptr2;
       *ptr2 = temp;
    }
  2. 動的メモリの解放: ダブルポインターは、動的に割り当てられたメモリを解放する際にも便利です。以下は、ダブルポインターを使用して動的に割り当てられたメモリを解放するコードの例です。

    void freeMemory(int ptr) {
       free(*ptr);
       *ptr = NULL;
    }
  3. 配列のソート: ダブルポインターを使用して、配列の要素をソートすることもできます。以下は、整数配列を昇順にソートする関数の例です。

    void sortArray(int ptr, int size) {
       for (int i = 0; i < size - 1; i++) {
           for (int j = 0; j < size - i - 1; j++) {
               if (*ptr[j] > *ptr[j + 1]) {
                   int* temp = *ptr[j];
                   *ptr[j] = *ptr[j + 1];
                   *ptr[j + 1] = temp;
               }
           }
       }
    }

これらはいくつかのダブルポインターの使用例ですが、実際にはさまざまな場面で活用することができます。ダブルポインターは、ポインターのポインターとして柔軟性とパワーを提供するため、プログラミングにおいて重要な概念です。