美文网首页
大话结构体之七:struct中0元素数组的意义在哪里?

大话结构体之七:struct中0元素数组的意义在哪里?

作者: Coder_LL | 来源:发表于2021-04-15 00:10 被阅读0次

    By Long Luo

    上一回大话结构体之六:无即是有,没有成员变量的Struct(结构体),我们在文章的结尾留了一个悬念:

    ---为什么0元素数组在classstruct结构体之外定义就是错误的,而在classstruct中定义就是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;
    }
    

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

    struct0元素数组意义就是可以作数量未知的扩展,所以也称为flexible arrays

    通过系列之五和之六,我们了解了0元素数组的意义。在下一篇中我们将试图揭开struct最复杂和最难的部分:Struct中的函数和函数指针

    不要走开,后面更精彩!

    原文链接:Struct中0元素数组的意义在哪里?

    相关文章

      网友评论

          本文标题:大话结构体之七:struct中0元素数组的意义在哪里?

          本文链接:https://www.haomeiwen.com/subject/spmvkltx.html