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

我想寫一個可以對2維陣列刪除與建立的函式

缺席
ysf
一般會員


發表:5
回覆:3
積分:1
註冊:2004-03-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-08 12:46:53 IP:203.64.xxx.xxx 未訂閱
各位好: 我想寫一個可以對2維陣列刪除與建立的程式如下:
float **A;
if(A!=NULL)
{
 for(int j=0;j
亦即將陣列B,C刪除,並重新建立2維陣列B,C,且其初始值為0,該如何做修改?懇請各位予以指導..        發表人 - taishyang 於 2004/10/08  12:59:52
        
ysf
一般會員


發表:5
回覆:3
積分:1
註冊:2004-03-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-08 14:30:26 IP:203.64.xxx.xxx 未訂閱
根據版主之說明,將欲發問之程式修改如下:
float **A;
if(A!=NULL)
{
 for(int j=0;j
若要將其改寫成
 
float **B;
float **C;
void __fastcall TFunTestFrm::Btn1Click(TObject *Sender)
{
 Array2dReSet(B,128);
 Array2dReSet(C,128);
}
void __fastcall Array2dReSet(float **A,int L)
{
 if(A!=NULL)
 {
  for(int j=0;j
亦即將陣列B,C刪除,並重新建立2維陣列B,C,且其初始值為0,則函式該如何做修改?懇請各位予以指導..        
        
jackyung
一般會員


發表:22
回覆:46
積分:13
註冊:2004-01-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-08 14:43:17 IP:218.171.xxx.xxx 未訂閱
第一個方法沒有錯吧,頂多 L 指定一下    
    int L = 128;    float **A;
if(A!=NULL)
{
  for(int j=0;j     
        
ENIX007
高階會員


發表:28
回覆:274
積分:185
註冊:2003-11-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-08 15:01:18 IP:220.228.xxx.xxx 未訂閱
ysf您好 寫成函式的話,建議您不要這樣寫,如果一定要這樣的話, 修改成下面這樣應該就可以了  
 float ** __fastcall Array2dReSet(float **A,int L)
{
 if(A!=NULL)
 {
  for(int j=0;jdelete [] A;
  A = NULL;
 }
 A=new float*[128];
 for(int j=0;j<128;j  )
 {
  A[j]=new float[128];
  for(int i=0;i
呼叫的時候 float **B; float **C; B = Array2dReSet(B,128); C = Array2dReSet(C,128); 最好不要這樣寫的理由是,當呼叫完函式建立了B陣列後,要記得作釋放的動作, 否則就造成記憶體流失... 參考看看 程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~
------
程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~
系統時間:2024-06-29 15:51:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!