關於建立棧時,宣告結構體變數或指標的問題
阿新 • • 發佈:2021-02-02
技術標籤:連結串列
例1
#define MAXSIZE 5
typedef struct
{
int data[MAXSIZE];
//用於棧頂指標
int top;
} SqStack;
此時,結構體中SqStack的記憶體已經被分配好了,可以直接使用,宣告一個結構體變數就行。
main函式呼叫1
int main()
{
SqStack S;int e;
Push(&S, 3);
Pop(&S, &e);
printf("%d", e);
}
例2
//定義結構體
typedef struct Node
{
int data;
struct Node *next;
}Node;
typedef struct Node *LinkList;
//寫一個初始化連結串列
Node* InitList()
{
LinkList head = (LinkList)malloc(sizeof(Node));
if (head==NULL)
exit(-1);
head->next = NULL;
printf("建立成功\n");
return head;
}
此時宣告指標,需要將Node的記憶體進行malloc分配後再使用。
main函式呼叫2
int main ()
{
Node *head = InitList();//初始化
}