Re: [問題] 關於linklist跟struct的問題
※ 引述《conan77420 (小馬非馬)》之銘言:
: : //================linklist資料差入===========
: : int insert(int data)
: : {
: : node *pnode=new node;
: : (*pnode).data=data;
: : (*pnode).pnext=0;
: : if(phead==0)
: : {phead=pnode;}
: : else
: : { node *plast=new node;
^^^^^^^^^
: : plast=phead;
^^^^^^^^^^^
memory leak... 前一行new的記憶體空間變成孤兒了
: : while((*plast).pnext!=0)
: : {plast=(*plast).pnext;}
: : (*plast).pnext=pnode;
: : }
: : }
: : //============================================
: : //==============將linklist中的值分別印出======
: : void print()
: : {
: : node *pnode=new node;
^^^^^^^^
: : pnode=phead;
^^^^^^^^^^^^
memory leak 同上...
: : while(pnode!=0)
: : {
: : cout<<"Link list datais:"<<(*pnode).data<<endl;
: : pnode=(*pnode).pnext;
: : }
: : }
: //============================================
: void del()
: {
: node *pnode=new node;
^^^^^^^^^
: pnode=phead;
^^^^^^^^^^^^
memory leak 同上...
: node *temp=0;
: while(pnode!=0)
: {
: temp=(*pnode).pnext;
: delete pnode;
: pnode=temp;
: }
phead = 0; // 初始化 phead,表示list為空
: }
: //==============================================
: ===============================================
: 當我執行程式時第一次的輸入與印出沒問題,
: 但是第二次輸入卻打到第三個就卡住了,
: 不管將接受輸入的次數改成幾次都在第三次輸入停住
: 在此請教各位不知哪裡有問題,謝謝
大概是 phead沒初始化,造成 insert()時去存取
已經被delete的記憶體
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.113.195
推
04/30 21:54, , 1F
04/30 21:54, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章