全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1319
推到 Plurk!
推到 Facebook!

Double Linklist 問題

答題得分者是:taishyang
akok0111
一般會員


發表:6
回覆:3
積分:1
註冊:2003-12-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-07-22 12:00:00 IP:203.73.xxx.xxx 訂閱
我讀了一個文字檔,並將裡面的文字差解成一個字一個字,然後比對每個英文字第一個字母,排序後輸出,我用double link list去處理,但是出現了Access violation at address 00402f47 in mpdule. 請各位高手指教一下是哪邊出錯了好嗎~~程式碼如下:



[code cpp]
TForm1 *Form1;
struct Node
{
String data;
Node *prev;
Node *next;
};
Node *head =new Node;
Node *tail=new Node;
Node *ptr = new Node;
//---------------------------------------------------------------------------
_fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList *strList = new TStringList();
strList->LoadFromFile("ReadMe.txt");
strList->Text=StringReplace(strList->Text, " ", " ", TReplaceFlags()) ;
strList->CommaText = strList->Text;
Node *newptr=new Node;
int count1=0;
int count2=0;
//char *getdata
tail=head;
for(int i=0;iCount;i )
{
Memo1->Lines->Add(strList->Strings[i]);
if(count1==0)
{
head->data=strList->Strings[i];
count1=1;
if(head==tail)
{
tail=head;
head->next=NULL;
}
}
else if(count1==1)
{
ptr=tail;
Node *newptr=new Node;
newptr->data=strList->Strings[i];
while(1)
{
String c1=ptr->data.SubString(1,1);
String c2=newptr->data.SubString(1,1);
if(c1>c2)
{
ptr->next=newptr;
newptr->next=NULL;
newptr->prev=ptr;
tail=newptr;
ptr=tail;
break;
}
else
{
ptr=ptr->prev;
c1=ptr->data;
if(ptr->prev==NULL && c2 {
head=newptr;
head->next=ptr;
head->prev=NULL;
break;
}
else if(c2>c1)
{
ptr->next->prev=newptr;
newptr->next=ptr->next;
ptr->next=newptr;
newptr->prev=ptr;
break;
}
}
}
}
}


}
//---------------------------------------------------------------------------

[/code]
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-07-22 14:51:11 IP:118.169.xxx.xxx 訂閱
自己先下斷點trace來練習如何debug吧 ^^
akok0111
一般會員


發表:6
回覆:3
積分:1
註冊:2003-12-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-07-22 16:58:08 IP:210.68.xxx.xxx 訂閱
我有試著下斷點,trace,錯誤出現在第63行那邊,但是我看那個值並沒有錯誤~~不知道是哪個環節出錯了,懇請高手指導一下,
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-07-22 17:04:18 IP:118.169.xxx.xxx 訂閱
斷點下在第61行
你問題應該是出在第62行
c1=ptr->data, 此時你的ptr所指的data是NULL導致


系統時間:2024-04-25 19:05:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!