在C/C++中,当你尝试访问一个数组的某一元素的时候,不会做任何下标是否越界的检查。
如果下标超过了数组定义时候的长度,就会从数组所占空间的最后一个地址一次往后顺延。所以如果数组后面定义了某些元素,这些元素的值可能会改变;如果数组的下标足够大,就会访问到超过程序所拥有的地址空间的地址,会报错:Segmentation fault
这样,那个可变长度的结构体也就很好理解了
在C/C++中,当你尝试访问一个数组的某一元素的时候,不会做任何下标是否越界的检查。
如果下标超过了数组定义时候的长度,就会从数组所占空间的最后一个地址一次往后顺延。所以如果数组后面定义了某些元素,这些元素的值可能会改变;如果数组的下标足够大,就会访问到超过程序所拥有的地址空间的地址,会报错:Segmentation fault
这样,那个可变长度的结构体也就很好理解了