长度为0的数组的应用
可以用法在通信领域应该来说用的比较对,主要是用于动态内存的管理,那么这种方法有什么好处呢?
首先要说的是这种用法标准的C/C++是不支持的,编译不过,但是在GUN C中却可以!
其次再说好处,就是分配和释放都是一次性的:
struct hello
{
int header_len;
int data[0];
};
struct hello *pHello = malloc(sizeof(struct hello)+length);
free(pHello);
如果是用指针成员的话,要分配这样的内存就需要两次了,释放的时候还需要两次了;
最后还有一个好处是,data成员不占用内存!
总结:
1.成员不占用内存;
2.分配内存和释放内存都是一次性完成;
3.成员可以按照数组的方式来访问;