Đoạn mã dưới đây sẽ tạo ra một lỗi, vì không có cách nào mà trình biên dịch có thể biết kích thước mảng trong quá trình biên dịch.Tại sao mã này không tạo ra lỗi khi sử dụng kích thước mảng biến?
int f;
std::cin >> f;
int c[f];
c[100] = 5;
Tôi đang biên dịch bằng gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 và nó không chỉ biên dịch, nhưng nó chạy bằng cách nào đó.
Làm thế nào để nó xảy ra?
Xem [Liệu “int size = 10;”? Mang một biểu thức hằng] (http://stackoverflow.com/q/21273829/1708801) cho rất nhiều chi tiết hơn về chủ đề này. –