int main()
{
struct a
{
struct a *next;
struct a *prev;
};
struct a *A[2];
printf("Address of (&(A[0])->next) = %p",(&(A[0])->next));
getch();
return 0;
}
上記のprintfステートメントでは、「struct a」構造の「次の」ポインターにアクセスしています。開発コンパイラーでプログラムを実行すると、有効なメモリーアドレスが得られます(まだメモリーを割り当てていません)。これがどのように起こるかの説明は非常に役に立ちます。
「next」および「prev」フィールドにメモリが割り当てられていますか?