c++ 動態數組

這學期學C++  ,晚上有道編程題, 比較坑, 感覺要用動態數組做, 但實際就是要用靜態數組, 因爲動態的反而更難了。 

用動態數組的時候,發現自己只會創建一維的 int *a = new int[5] ;   然後二維數組怎麼創都忘記了, 還是那句話 ,不寫代碼很容易

  忘記。 然後下面就給出幾個例子吧

  1. <span style="white-space:pre">    </span>int **p = new int*[i];  
  2.       
  1. <span style="white-space:pre">    </span>for (int k = 0; k < i ; k++)  
  2.     {  
  3.   
  4.         p[k] = new int[j];  
  5.     }  
  1.   

當然創建方式不止是這麼一種 。 另外有一點要強調, 有幾個new 就要調用幾個delete , 不然會造成內存泄露, 然後多爲數組還要delete[].............


還有一點想說的是編程過程的一些問題吧 

  1. 首先是數組的指針表達式   *(*(p+i)+j)   今天居然有同學問我這個怎麼寫,我也是無語了,感覺這個事必須掌握的啊 
  2.        int **qw = new int[12][23];   這個提示錯誤

    "int(*)[23]"類型的值不能用於初始化" int * *"類型的實例 ;  很顯然是類型不匹配,所以new 不了來了  實際改法也很簡單, 就是int (*p)[23] = new int [12][23] ; 

3 還有一點是在傳參數的時候, 二維數組可以**p 做形參, 也可是(*p)[23] 這種格式  




C++ 中動態數組還是很有用的, 特別是在類當中, 深拷貝這類的 ,還是很值得學習的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章