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