数据结构 c语言 作用域问题

问题用//标出来了,同样的语句为什么放入循环结果就完全不同了?

https://img3.mukewang.com/5bd6432e000100d203880087.jpg

#include <stdio.h>

#include <stdlib.h>

#define OK 1

#define NO 0

int nn=0;

typedef struct Node

{

    int data;

    struct Node *next;

}Node,*Linkstackptr;

typedef struct

{

    Linkstackptr top;

    int count;

}Linkstack;


Linkstackptr Createstacktail(Linkstack *S,int n)   

{

    Linkstackptr r,p;

    S->count=0;


    Linkstackptr *L;

    *L=(Node*)malloc(sizeof(Node));

    (*L)->data=++nn;(*L)->next=NULL;

    r=*L;

    S->top=*L; S->count++;

    printf("%d\n",(*L)->data);          //

    int j;

    for(j=1;j<n;j++)

    {   printf("%d\n",(*L)->data);       //

        p=(Node*)malloc(sizeof(Node));

        p->data=++nn;

        p->next=NULL;

        r->next=p;

        r=p;

        S->count++;

    }

    //printf("%d\n",(*L)->data);

    //printf("%d\n",(*L)->next);

    return *L;

}

void main()

{

    Linkstackptr first;

    Linkstack S;

    first=Createstacktail(&S,3);

    //Showlist(first);

    //printf("%d\n",S.count);


    //Showlist(first);

}


猛跑小猪
浏览 1127回答 1
1回答

江户川乱折腾

在学数据结构 可以去学堂在线上课,选择这堂课的资料学习,丢掉你现在手上的书,这代码风格,现代编译器一堆报错

临摹微笑

Code style 挺醉人的……$ gcc linkstack.c -o link && ./link[1]&nbsp; &nbsp; 6174 segmentation fault&nbsp; ./link$ gcc --versiongcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904Copyright (C) 2015 Free Software Foundation, Inc.This is free software; see the source for copying conditions.&nbsp; There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
打开App,查看更多内容
随时随地看视频慕课网APP