gpt4 book ai didi

数组大小在编译时确定的 C 结构

转载 作者:行者123 更新时间:2023-12-02 08:22:23 24 4
gpt4 key购买 nike

如何构建一个结构,其中包含一个可以为每个结构设置不同的数组,最好是通过一个参数?该应用程序是单一数据类型,支持不同但固定长度的数组

我的尝试看起来像这样,显然没有编译:

struct Data_struct(n)
{
int xData[n];
int test;
};

最佳答案

唯一可用的方法是使用 flexible array member .

struct Data_struct {
int test;
int xData[];
};

然后您将使用 malloc() 为此分配空间:

int n = 4;
struct Data_struct *s = malloc(sizeof(struct Data_struct) + n * sizeof(int));

请注意,我们必须为灵活数组显式分配额外空间。

关于数组大小在编译时确定的 C 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35801119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com