最近在看路由协议dsr-uu,看下面这个结构体:
struct dsr_srt {
struct in_addr src;
struct in_addr dst;
unsigned short flags;
unsigned short index;
unsigned int laddrs; /* length in bytes if addrs */
struct in_addr addrs[0]; /* Intermediate nodes */
};
最后一个元素定义数组个数为1,但是在使用时addrs[i]中的i值确可以从0取到n-1,其中n = srt->laddrs / sizeof(struct in_addr);
我就有点糊涂了。这个大小可变的数组到底是如何定义的?
谢谢大家