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 ạ??
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?
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];
Đề chặn rồi )
vector<int> a(n);
1 cách duy nhất là đủ, khỏi cần mảng miếc gì hết.
Dùng mảng làm được một số tricks