gpt4 book ai didi

在 C 中创建相似的不同结构

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:38 25 4
gpt4 key购买 nike

我是 C 的新手,在不重复代码的情况下生成相似的结构时遇到了问题。例如,我有一个函数中使用的下一个链表。

  typedef struct ll1{
int oneArray[*m];
struct ll2 *previous;
double restOfValues[];
}uniquePattern;

当然,我还有相关函数free_ll1addElement_ll1等。问题是我有另一个链表,这样

  typedef struct ll2{
int oneArray[*n];
struct ll2 *previous;
double restOfValues[];
}ll2;

因此我创建了函数 free_ll2addElement_ll2 等。

如果有一个名为 createllFunctions(int size,char *name) 的函数会创建实际结构并返回一个指针数组,指向可以释放、添加元素的函数,等等

size 将是 oneArray 的大小(在本例中为 *n*m)和 *name 将是 createllFunctions 内部结构的名称,它仅在函数本身内部有用。

问题是两方面的。这是一个好主意还是我忽略了更常用的另一种模式?如果好,我将如何实现,特别是我不知道如何调用 *name 结构本身。

非常感谢您的宝贵时间。

最佳答案

你不需要多个类型,只需要多个相同类型的对象:

typedef struct ll {
int* oneArray;
struct ll *previous;
} ll;
ll l1;
l1.previous = NULL;
l1.oneArray = malloc(number * sizeof(int));
ll l2;
l2.previous = &l1;
l2.oneArray = malloc(number2 * sizeof(int));

关于在 C 中创建相似的不同结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20584575/

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