在下面的代碼中,我得到一個分段錯誤段錯誤:與指針到指針與C/Linux的
Set *getpar() {...}
char function(...)
{
Set **S;
*S = getpar(); /* Segmentation Fault */
...
}
但離奇的是,有一些變化,沒有分段錯誤:
Set *getpar() {...}
...
char function(...)
{
Set *S; // One less '*'
S = getpar(); // One less '*'
...
}
據我所知,如果有'Set **S
'那麼*S
是指向Set
對象的指針,所以如果第二個代碼工作正常,爲什麼不應該第一個?第一個代碼的*S
相當於第二個代碼的S
,我是不是對不對?我該如何解決這個問題?
非常感謝!我花了幾個小時在那件事上。 – 2009-04-25 22:30:32