malloc後程式出現不明的錯誤 |
尚未結案
|
klsdf
一般會員 發表:1 回覆:1 積分:0 註冊:2010-07-30 發送簡訊給我 |
主程式碼其中一部份
[code cpp] int i,j; loadsign=loaddialog->Execute(); if(loadsign)//開啟讀檔對話框成功 { N4->Enabled=false; N5->Enabled=true; N6->Enabled=true; N8->Enabled=true; infile=fopen(loaddialog->FileName.c_str(),"r"); system_msg->Lines->Add("係數檔開啟成功。\n"); system_msg->Lines->Add("開始讀取" loaddialog->FileName ".............\n"); fscanf(infile,"%6s%d",nonread,&items); fscanf(infile,"%6s%d",nonread,&arraywidth); //定義基本型態共同項空間 commonptr=(commonstruct **)malloc(4*sizeof(commonstruct *)); commonbackup=(commonstruct **)malloc(4*sizeof(commonstruct *)); for(i=0;i<4;i ) { commonptr[i]=(commonstruct *)malloc((arraywidth 1)*sizeof(commonstruct)); commonbackup[1]=(commonstruct *)malloc((arraywidth 1)*sizeof(commonstruct)); } for(i=0;i<4;i ) { for(j=0;j<=arraywidth;j ) { commonptr[i][j].addressarray=(char **)malloc((arraywidth-j 1)*items*sizeof(char *)); commonptr[i][j].addressoffsetarray=(int *)malloc((arraywidth-j 1)*items*sizeof(int)); //commonbackup[i][j].addressarray=(char **)malloc((arraywidth-j 1)*items*sizeof(char *)); //commonbackup[i][j].addressoffsetarray=(int *)malloc((arraywidth-j 1)*items*sizeof(int)); } } //定義itemsaddress origin,itemsbackup,relaitems空間 itemsaddress=(char **)malloc(items*sizeof(char *)); originbackup=(char **)malloc(items*sizeof(char *)); itemsbackup=(char **)malloc(items*sizeof(char *)); for(i=0;i originbackup[i]=(char *)malloc((arraywidth 1)*sizeof(char)); itemsbackup[i]=(char *)malloc((arraywidth 1)*sizeof(char)); itemsaddress[i]=(char *)malloc((arraywidth 1)*sizeof(char)); } for(i=0;i coeff_msg->Lines->LoadFromFile(loaddialog->FileName);//顯示出係數檔內容 system_msg->Lines->Add("讀取係數檔完畢......"); system_msg->Lines->Add(""); system_msg->Lines->Add("讀取製程參數......"); system_msg->Lines->Add("面積參數:"); system_msg->Lines->Add("加法器=" FloatToStr(adder_area) "(nm)"); system_msg->Lines->Add("減法器=" FloatToStr(suber_area) "(nm)"); system_msg->Lines->Add("暫存器=" FloatToStr(reg_area) "(nm)"); system_msg->Lines->Add("延遲參數:\n"); system_msg->Lines->Add("加法器=" FloatToStr(adder_delay) "(ns)"); system_msg->Lines->Add("減法器=" FloatToStr(suber_delay) "(ns)"); system_msg->Lines->Add("暫存器=" FloatToStr(reg_delay) "(ns)"); system_msg->Lines->Add(""); for(i=3;i<=arraywidth;i ) { simple_form->h_max->Items->Add(IntToStr(i)); simple_form->h_min->Items->Add(IntToStr(i)); simple_form->deswidth->Items->Add(IntToStr(i)); } for(i=3;i<=items;i ) { simple_form->v_max->Items->Add(IntToStr(i)); simple_form->v_min->Items->Add(IntToStr(i)); } for(i=3;i<=arraywidth;i ) simple_form->deswidth->Items->Add(IntToStr(i)); searchcommon(commonptr,itemsaddress,items,arraywidth,0); fclose(infile); } else//開啟失敗 system_msg->Lines->Add("係數檔開啟失敗或未開啟。\n"); [/code] 只要malloc commonbackup的addressarray跟addressoffsetarray 程式執行就會出錯 我BCB6已經更新到SP4了 爬文爬了很久 原本以為是更新的問題 但是已更新也沒用 附上主程式 肯請解答 是否我的寫法有問題 |
s92405054
高階會員 發表:7 回覆:49 積分:101 註冊:2009-04-07 發送簡訊給我 |
|
klsdf
一般會員 發表:1 回覆:1 積分:0 註冊:2010-07-30 發送簡訊給我 |
|
zhgwbzhd
一般會員 發表:10 回覆:32 積分:18 註冊:2008-07-24 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |