前几天遇到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;
}