gpt4 book ai didi

c - 从用户那里获取#define 值

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

当涉及结构时,如何从用户输入中获取#define 值而不是在代码中预先定义它。鉴于下面的代码,我想从用户那里获取值 N,是吗可能还是我应该尝试别的东西

#define N 4

// Data structure to store graph
struct Graph {
// An array of pointers to Node to represent adjacency list
struct Node* head[N];
};

最佳答案

这在您尝试执行的方式中是不可能的。您不能动态地(运行时)重新定义 C 中的类型。一种替代方法是存储双指针并根据用户要求分配内存。

将图形结构更改为以下内容:

// Data structure to store graph
struct Graph {
// A double pointer to Node to represent adjacency list
struct Node** head;
};

现在,根据 N 的值,您可以动态分配所需的内存。

int N = 4;
Graph g;
g.head = malloc(sizeof(struct Node*) * N);

这里,N 同样可以是#define 或运行时设置的变量。您的其余代码可以保持不变。您可以继续使用 g.head[i] 来引用第 i 个元素,就像您有一个数组一样。

当然,不要忘记在完成后free()分配的内存,否则会发生泄漏!

关于c - 从用户那里获取#define 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57922262/

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