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