#include#includetypedef struct node;
typedef node* list;
void init_list(list &l)
l->next = null;
}void add_element(list &l,int e)
node *tmp = (node *)malloc(sizeof(node));
tmp->data = e;
tmp->next = p->next;
p->next = tmp;
}int main()
scanf("%d",&n);
while(n--)
node *p = la;
*la = *lb;
while(p->next!=null)
printf("\n");
p = lb;
while(p->next!=null)
printf("\n");
return 0;
}
其實大一的問題到大三來解決真是有點讓人笑話了, 誰讓學過c之後就一直沒碰過了呢, 今天在複習資料結構手寫乙個鍊錶都遇到問題,定義的乙個表頭指標傳進去, 怎麼都沒有反應, 結果調bug的時候發現指標列印為-1!!!! (應該是0),經過詢問,發現指標實際上可以理解為乙個整數型別的變數, 該變數反應的是其他元素的位址,所有的人都要引以為戒哦, 學過物件導向語言的人會被指標迷惑, 談到指標 就是引用, 但是 對於指標本身的值問題上, 我們可以毫不含糊的將它分別對待, 就當做乙個普通變數, 函式內要初始化malloc分配乙個隨機位址給這個指標賦值, 形參要是不寫& 引用 ,malloc的位址可以說就被存放在異次元了。。。 另外, c語言是沒有自動**這一說, 我做了乙個實驗, 講兩個不同鍊錶的值相互賦值, 結果可以成功賦值, 那麼問題來了: 之前多餘的元素到哪兒了?
結果可想而知, 丟了。 雖然沒有任何變數引用到他, 他還是像寄生蟲一樣扎根在記憶體中, 這也是c 和c++中很重要的記憶體管理問題, 動態分配的記憶體一定要手動釋放, 否則必有後患~。 想自動管理記憶體, 可以使用c++ std標準庫中的 shared_ptr , 之前學習cocos2d-x也提到過引用計數。貼上我這次試驗的小**。
感謝ftiasch給我的啟示。
C 中乙個關於複製建構函式和指標的問題
copy建構函式是顯式地去處理乙個物件初始化另乙個物件的問題,如果類含有乙個指標的話,那麼處理起來主要分為兩種情況。a.指標在類的構造或者初始化時指向動態分配的記憶體,並在物件析構時對該指標進行delete操作,釋放記憶體資源。這種情況下,對指標的操作是萬萬不能簡單對指標位址進行賦值操作的。應該是動...
今天犯了乙個關於引用的低階錯誤
今天犯了乙個引用的低階錯誤,如下 std list recsim frame datas g recsim 264frame datas if strcmp dev user,265 0 我們的本意是 當user不為 265 時,recsim frame datas是g recsim 264fram...
關於指標的乙個小問題
任務 c primer 4th 習題5.18 編寫程式定義乙個vector物件,其每個元素都是指向string型別的指標,讀取該vector物件,輸出每個string的內容及其相應的長度。自己的方法 string s string sarr 10 vector內的每個元素都是指向string型別的指...