在C中声明后初始化struct数组的大小?

时间:2016-03-25 00:53:54

标签: c

我已经做了一些搜索,但我发现的任何内容都没有回答我关于结构的问题:

在我的程序中,我有两个结构:一个包含数据,另一个包含第一个结构的数组(用于使返回的struct数组更容易)。

在运行几行代码之前,我不知道上述结构数组的大小。根据我的发现,在已经声明数组之后,没有办法定义数组(或任何类型)的大小,尽管我想知道结果是否适用。

如果没有,是否有办法在不使用malloc的情况下定义结构中先前声明的数组的大小?将malloc与struct数组一起使用似乎有点复杂,我无法绕过它。

typedef struct
{
    char **data;
} struct1;

typedef struct
{
    struct1 data[];
} struct2;

int main(int argc, char **argv)
{
    //Pretend there is code here that finds the size I need
    size = 5;
    struct2 Info;
    Info.data = new struct1[size]; //Clearly this won't work, but does C offer anything comparable?

    return 0;
}

0 个答案:

没有答案