【Struct(结构体)杂谈之七】Struct中0元素数组的意义在哪里?

Struct0元素数组的意义


上一回我们在【Struct(结构体)杂谈之六】无既是有---没有成员变量的Struct(结构体)   文章的结尾留了一个悬念:

---为什么0元素数组在class和struct结构体之外定义就是错误的,而在class和struct中定义就是Okay的,那么结构体中的0元素数组意义何在?


打个通俗的比喻,比如一个部门,有部门经理、PM、以及数量众多的苦逼程序猿们,某天部门接到一个项目,于是乎,拉出一个PM及数量未知的程序猿们,开工了:


#include <iostream>

using namespace std;

struct Department
{
	int Manager;
	int PM;
	int ProgrammerNo[0];
};


int main(void)
{
	Department *pt = NULL;
	int Num = 5;
	pt = (Department *)malloc(sizeof(Department) + sizeof(int) * Num);

	pt->ProgrammerNo[0] = 006;
	pt->ProgrammerNo[1] = 99;
	

	getchar();
	return 0;
}

做一个项目,程序猿的数量是变化的,因此我们也就知道


struct中0元素数组意义就是可以作数量未知的扩展



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值