在以下代码中,我遇到了分段错误:
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
第二个代码,我说的不对吗?我该如何解决这个问题?