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;
}

相关推荐