Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Khởi tạo mảng động trong C++

Mảng động có thể được khởi tạo và trả về từ hàm nhờ cấp phát trên heap (không bị hủy khi hàm kết thúc).

Ví dụ: Trả về mảng động từ hàm

#include <iostream>
using namespace std;

int* Array() {
    int* a = new int[100]; // cấp phát trên heap
    a[0] = 7;
    a[1] = 6;
    a[2] = 4;
    a[3] = 5;
    return a; // trả về con trỏ, bộ nhớ vẫn hợp lệ
}

int main() {
    int* p = Array();
    cout << "Các phần tử: " << p[0] << " " << p[1] << " " << p[2] << " " << p[3] << endl;
    delete [] p; // nhớ giải phóng!
    return 0;
}

Kết quả

Các phần tử: 7 6 4 5

Cảnh báo: Không trả về con trỏ đến mảng cục bộ (stack array) vì bộ nhớ sẽ bị giải phóng khi hàm kết thúc.