在 C/C 中的結構宣告中,我們必須使用自參考結構指標而不是結構本身。
// 編譯錯誤
struct stack {
int overflow;
stack p;
}
struct stack {
int overflow;
stack* p;
}
一個會導致錯誤,而另一個不會在相同的條件下(宣告)我很好奇stack* p;在宣告期間使用時記憶體區域的操作以及如何使其成為可能。
uj5u.com熱心網友回復:
這
struct stack {
int overflow;
stack p;
}
試圖包含自己,那么它應該有多大?有了它自己的一個副本,它看起來像這樣
int ov;
{
int ov;
stack p;
}
但是堆疊 p 需要擴展 - 所以我們得到
int ov;
{
int ov;
{
int ov;
stack p;
}
}
但是堆疊 p 需要擴展 - 所以我們得到
int ov;
{
int ov;
{
int ov;
{
int ov;
stack p;
}
}
}
但是那個堆疊 p 需要擴展 - 所以我們得到......永遠。
換一種方式看,struct 應該包含多少個 int 溢位?
指標的作業原理是這樣的
int overflow;
stack *p;
結束。該結構具有明確定義的大小,一個整數和一個指標
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/462787.html
上一篇:何時取消參考
