例如,我有一个函数:
void build()
{
struct Node *node;
node = (struct Node*)malloc(sizeof(struct Node));
}
是否可以从外部访问指针“节点”?
最佳答案
C 是一种非常简单的语言。您唯一的选择是显式地将节点值放在某处,或者:
- 全局变量
- 函数的参数
- 返回值
选项 2 和 3 是最常见的。作为函数的参数:
void build(struct Node **node_param)
{
struct Node *node;
node = (struct Node*)malloc(sizeof(struct Node));
*node_param = node;
}
对于选项 3 可以简单地:
struct Node * build()
{
struct Node *node;
node = (struct Node*)malloc(sizeof(struct Node));
return node;
}
您可以创建一个独立变量,也可以创建一个包含更多字段的结构体,以防您的函数要返回许多值。
关于c - 访问函数内部创建的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26328845/