【发布时间】:2014-09-10 11:33:24
【问题描述】:
我有一个由 3 个文件组成的程序。
main.c 包含堆栈的外部变量,并包含解析输入并将输入传递给 stack.c 中的函数的代码
stack.c //包含执行堆栈推/拉等操作的函数
- stack.h //包含函数原型
程序目前使用全局整数数组作为栈。
我现在尝试将程序转换为使用堆栈的链表而不是整数数组。
我的问题是我不知道应该在哪里声明结构以及应该在哪里声明结构成员。我应该把它们放在 main 函数之外的 main.c 中,在 stack.h 头文件中吗?
我的结构声明
struct node {
int value;
struct node *next;
};
struct node *first = NULL;
struct node *new_node = NULL;
new_node = malloc(sizeof(struct node));
【问题讨论】:
-
结构定义和指针声明可以保持全局。
new_node = malloc(sizeof(struct node));必须在函数内部(例如 main()),因为它生成“代码”,而不是“数据”。 -
我不确定为什么链表堆栈需要两个指针。
标签: c