歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C++二維指針或指針參數

前幾天遇到C語言一個小問題,覺得還是比較有意義的,還是記下來吧

結構體

struct s

{

  int i;

  double d;

};

在main中有一個指向這個數據結構的指針,實際上是指向若干個連續空間的指針

s* my_s;

條用 get()函數希望能對s所指向的空間賦值。同時,空間的大小只能在get函數中計算

其實這個問題就是一個簡單的二維指針的問題

get(s** _s)

{

    int len = getlen();// 計算要多大的空間

    *s = new s[len];

    for(int l=0;l<len;l++)

  {

    (*s)[l].i  = l;

    (*s)[l].d = 0.5;
  }
}

main()

{

    s* _s;

  get(&_s);

    //說明,這裡如果遍歷_s指針,不要用_s++,因為這樣在釋放_s的時候會出錯!

  delete [] _s;
}

Copyright © Linux教程網 All Rights Reserved