Khai báo mảng trong C++

cho em hỏi sự khác biệt trong bộ nhớ khi khai báo trong hàm main():
C1:

int n;
cin >> n;
int a[n];

C2:

const int maxN = 1000;
int a[maxN];
int n;
cin >> n;

Khi nào em nên dùng cách 1, khi nào em nên dùng cách 2 ạ??

Cách 2: khi số lượng phần tử thực tế (n) lớn hơn số lượng khai báo (maxN) thì chuyện gì xảy ra?

1 Like

Trong C++ không dùng
int a[n] với n không phải const.

Đó là cách khai báo của C.

C++ thì như này:

int* a = new int[n];
3 Likes

Đề chặn rồi :slight_smile: )

vector<int> a(n); 1 cách duy nhất là đủ, khỏi cần mảng miếc gì hết.

2 Likes

Dùng mảng làm được một số tricks :smiley:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?