C++のポインター関数の定義と使い方

C++のポインタ関数とは、ポインタを返す関数のことです。基本データ型やカスタムデータ型、配列など、任意のデータ型へのポインタを返すことができます。

ポインタ関数の定義形式は以下のようになります:

返回类型* 函数名(参数列表) {
    // 函数体
}

関数の戻り値の型を表す ReturnType、*はポインターの識別子を示し、関数名は関数の名前、引数リストは関数が受け取ることのできるパラメータを示します。

ポインターファンクションの使用法は次のとおりです:

  1. 基本データ型へのポインタを返す。
int* getNumber() {
    int* ptr = new int;
    *ptr = 10;
    return ptr;
}

int main() {
    int* numPtr = getNumber();
    cout << *numPtr << endl;  // 输出:10
    delete numPtr;
    return 0;
}
  1. カスタムデータ型を指すポインタを返します。
struct Person {
    string name;
    int age;
};

Person* createPerson(string name, int age) {
    Person* ptr = new Person;
    ptr->name = name;
    ptr->age = age;
    return ptr;
}

int main() {
    Person* personPtr = createPerson("Alice", 20);
    cout << personPtr->name << endl;  // 输出:Alice
    cout << personPtr->age << endl;   // 输出:20
    delete personPtr;
    return 0;
}
  1. 配列へのポインタを返す。
int* createArray(int size) {
    int* arr = new int[size];
    for (int i = 0; i < size; i++) {
        arr[i] = i + 1;
    }
    return arr;
}

int main() {
    int* arrPtr = createArray(5);
    for (int i = 0; i < 5; i++) {
        cout << arrPtr[i] << " ";  // 输出:1 2 3 4 5
    }
    delete[] arrPtr;
    return 0;
}

指針関数が返すポインタを使用した後、メモリリークを防ぐためには、メモリを手動で解放する必要があります。単一のポインタが指し示すメモリを解放するにはdeleteを使用し、配列を指し示すポインタが指し示すメモリを解放するにはdelete[]を使用します。

bannerAds