Are Flexible Array Members Valid in C ?
In C99, flexible member arrays can be declared within structs, enabling the array size to be unspecified. However, the same syntax is not applicable in C . When attempted with clang, it failed to compile, requiring a modification to the declaration to include [0].
Validity in C
According to the C standard, there is no explicit reference to flexible member arrays. This suggests that they are not valid in C .
Correct Declaration
While [0] is traditionally considered an invalid declaration for arrays, it appears to be a valid declaration for flexible member arrays. This deviation from standard array behavior is unique to flexible member arrays in C .
Conclusion
Flexible member arrays, despite being available in C99, are not valid in C . The exclusion of this feature in C stems from the fact that C was standardized before their introduction in C.
The above is the detailed content of Are Flexible Array Members Allowed in C ?. For more information, please follow other related articles on the PHP Chinese website!