繁体   English   中英

如何修复此链表输出?

[英]How can I fix this linked list output?

    #include <stdio.h>
#include <stdlib.h>

struct node{

    int sayi;
    struct node* sonraki;



};

struct node* baslangic=NULL;


struct node* olustur(int sayi){

    struct node* yenidugum=(struct node*)malloc(sizeof(struct node));
    yenidugum->sayi=sayi;
    yenidugum->sonraki=NULL;

    return yenidugum;



}

void sonaekle(int sayi){

    struct node* sonaeklenecek=olustur(sayi);

    if(baslangic==NULL){

        baslangic=sonaekle;
    }
    else
    {

        struct node* temp=baslangic;

        while(temp->sonraki!=NULL){

            temp=temp->sonraki;
            temp->sonraki=sonaekle;
        }


    }

}

void yazdir(){


    struct node* temp=baslangic;

    while(temp!=NULL){


        printf("%d =>",temp->sayi);
        temp=temp->sonraki;
    }

}

int main()
{



    int secim, sayi;

    while(1){
        printf("1-Sona eleman ekle.....\n");
        printf("Yapmak istediginiz secimi yapin...\n");
        scanf("%d",&secim);


        switch(secim){

        case 1:
            printf("Hangi elemani ekleyeceksiniz..\n");
            scanf("%d",&sayi);
            sonaekle(sayi);
            yazdir();
            break;

        }

    }

    return 0;
}

我正在尝试制作链表,但是当我运行此代码时,它会给出如下输出: -443987883 => 我的错误是什么。 我找不到。 感谢您的回答并付出您的时间。

有错别字。

代替

baslangic=sonaekle;

您将void ( * )( int )类型的函数指针分配给类型 struct node *的指针的位置,您需要编写

baslangic=sonaeklenecek;

而不是这个while循环

    while(temp->sonraki!=NULL){

        temp=temp->sonraki;
        temp->sonraki=sonaekle;
    }

你需要写

    while(temp->sonraki!=NULL){

        temp=temp->sonraki;
    }

    temp->sonraki = sonaeklenecek;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM