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

Cách khởi tạo bộ nhớ với toán tử new trong C++

Toán tử new trong C++ được định nghĩa để cấp phát bộ nhớ, không phải khởi tạo. Nếu bạn muốn cấp phát mảng kiểu int với new và muốn khởi tạo tất cả về giá trị mặc định (0 đối với int), bạn có thể dùng cú pháp sau:

Cú pháp

new int[10]();

Lưu ý bạn phải dùng cặp ngoặc đơn rỗng – không thể dùng (0) hay biểu thức khác, do đó cách này chỉ hữu ích cho khởi tạo mặc định (default initialization).

Có các phương pháp khác khởi tạo cùng vùng nhớ dùng fill_n, memset, v.v. để khởi tạo đối tượng thành giá trị không mặc định.

Ví dụ

#include <iostream>
#include <cstring>
#include <algorithm>
int main() {
    int myArray[10];
    // Khởi tạo 0 dùng memset
    memset(myArray, 0, 10 * sizeof(int));
    // Dùng fill_n gán giá trị 1 cho mỗi phần tử
    std::fill_n(myArray, 10, 1);
}