1. 程式人生 > >c語言動態分配空間

c語言動態分配空間

問題:

typedef struct node{

    int num;

    struct node*next;

}Node,*pNode

在連結串列的create函式中,為什麼定義了連結串列頭之後,以後的每個空間都要new(c++中的用法)或者malloc?不能直接定義:

Node p;

pNode=&p;

原因:雖然上述兩行程式碼中也分配了空間,但是這種定義語句分配的空間是棧空間,而且有作用域的限制,不能再全域性使用,所以不能再create語句中採用;二malloc方式是在堆空間申請的,可以再全域性使用(只是在刪除時要自己回收)