Chuyện gì xảy ra khi không đặt độ dài của mảng?

Em chào mọi người ạ, em có một vấn đề thắc mắc như sau:
Đây là đoạn code của em viết bằng C++ trên Codeblock
Capture
Ở đây e chưa hề khởi tạo giá trị cho ds.diem[] nhưng khi in ra nó lại in các phần tử của mang[] ở trên. Tại sao lại như vậy ạ?

Do trình biên dịch.
Chạy thử trên OnlineGDB thì khai báo int diem[] không được chấp nhận.

6 Likes

Đây gọi là FLEXIBLE ARRAY (zero-length là GCC extension) :smiley: còn lí do tồn tại và vì sao nó ra như vậy thì nên đọc chậm chậm bài này:

https://www.forbes.com/sites/quora/2013/05/14/what-is-the-advantage-of-using-zero-length-arrays-in-c/

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