靈活數組類型

靈活數組類型是C99引入的語言特性 。 即在struct數據類型的最後一個數據成員 ， 可以爲一個未指明長度的數組類型 。 例如 ： struct double_vector_st { size_t length; double array [ ]; / / the flexible array member should be last }; sizeof運算符作用於這個struct ， 返回靈活數組成員的偏移量 。 在堆上分配這種struct ， 應該保留靈活數組的空間 。 如下例 ： struct double_vector_st * allocate_double_vector ( size_t len ) { struct double_vector_st * vec = malloc ( sizeof * vec + len * sizeof vec - > array [ 0 ] ); if (! vec ) { perror ( " malloc double_vector_st failed " ); exit ( EXIT_FAILURE ); } vec - > length = len; for ( size_t ix = 0; ix < len; ix + + ) vec - > array [ ix ] = 0.0; return vec; } C++ 語言標準尚未支持靈活數組類型 。 但Visual C++ 2015支持 。