bổ sung thêm ko có bound checking là vì C/C++ thích tốc độ hơn là an toàn :V
bổ sung thêm nữa nếu em muốn có bound checking với C++ thì xài std::vector, phương thức at(i) thay vì [i]
int n;
std::cin >> n;
std::vector<int> b(n); // mảng n phần tử
//std::cout << b[n] << "\n"; // undefined behavior: có thể gây lỗi, có thể ko
std::cout << b.at(n) << "\n"; // lỗi out_of_range
hoặc nếu số phần tử cố định thì xài std::array<int, 10> a thay cho int a[10] luôn :V
std::array<int, 10> a; // mảng 10 phần tử
//std::cout << a[10] << "\n"; // undefined behavior: có thể gây lỗi, có thể ko
std::cout << a.at(10) << "\n"; // lỗi out_of_range
đương nhiên xài at(i) chậm hơn [i] rất nhiều :V :V
à mà code em cấp phát new int; thì khi giải phóng xài delete chứ ko phải delete[] nha :V Chừng nào xài new int[n] thì mới xài delete[] tương ứng