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