0
typedef struct list_node
{
    char* dataPtr;
    struct list_node* next;
}ListNode;

typedef struct list
{
    ListNode* head;
    ListNode* tail;
}List;

void main()
{

    List lst;
    ListNode n1, n2, n3;

    lst.head = &n1;
    lst.tail = &n3;

    n1.dataPtr = "one";
    n1.next = &n2;
    n2.dataPtr = "two";
    n2.next = &n3;
    n3.dataPtr = "three";
    n3.next = NULL;

    printf("Hello World!\n");
}

デバッガーでコードを調べている間printf()、リストがすべての値を失った後。なぜですか?

4

2 に答える 2

1

ステートメントがブロック内の最後のステートメントであるため、変数lstとそのノードは範囲外です。printf

(ちなみに、使わないで最後に0をvoid main()使っint main()て返します。)

于 2013-07-27T16:24:51.480 に答える
-1

最後に a を追加した後、私にとってはうまくいきますreturn 0;

http://codepad.org/iVBNTEXn

が実行された後printf("Hello, world!\n");、デバッガーは のスコープを終了するmainため、リストは単に存在しなくなります。

于 2013-07-27T16:27:26.313 に答える