在0x7C43F338(ucrtbased.dll)引发异常

时间:2020-06-03 04:21:32

标签: c

老师给了我一个代码,我尝试在Visual Basic 2019上运行它,但在0x7C43F338(ucrtbased.dll)上抛出异常。 我只是被介绍给c的人,不知道怎么了

这是我的代码:

  #include <cstdio>
#include <malloc.h>
#include <string.h>

//percobaan 1 dan 3
int main(){
    printf("percobaan 1 dan 3\n");
    struct dtnilai
    {
        char nrp[10];
        char nama[20];
        double nilai;
        struct dtnilai* next;
    };
    struct dtnilai* ujung;
    void sisip_awal_LIFO();
    {
        struct dtnilai* tampung = 0;
        int j = 0; char jawab[2];
        while (1)
        {
            ujung = (struct dtnilai*)malloc(sizeof(struct dtnilai));
            fflush(stdin);
            printf("NRP :"); scanf("%s", &ujung->nrp);
            printf("Nama :"); scanf("%s", &ujung->nama);
            printf("Nilai Test :"); scanf("%lf", &ujung->nilai);
            if (j == 0)
            {
                ujung->next = NULL;
                tampung = ujung;
            }
            else
            {
                ujung->next = tampung;
                tampung = ujung;
            }

            printf("Ada data lagi(y/t):"); scanf("%s", &jawab);
            if ((strcmp(jawab, "Y") == 0) || (strcmp(jawab, "y") == 0))
            {
                j++; continue;
            }
            else if ((strcmp(jawab, "T") == 0) || (strcmp(jawab, "t") == 0))
                break;
        }
    }
    void tampil_list();
    {
        struct dtnilai* tampil;
        printf("Data Mahasiswa yang telah diinputkan :\n");
        printf("NRP\tNama\tNilai\n");
        tampil = ujung;
        while (tampil != NULL)
        {
            printf("%s\t%s\t%6.2f\n", tampil->nrp, tampil->nama,
                tampil->nilai);
            tampil = tampil->next;
        }
    }
    void sisip_stl_simpul();
    {
        struct dtnilai* sisip; struct dtnilai* stl;
        char cari[20];
        char nrp[10];
        char nama[20];
        double nilai;
        struct dtnilai* next;
        if (ujung == NULL)
            printf("List Belum Terbentuk. Buatlah Dulu!");
        else
        {
            ujung = (struct dtnilai*)malloc(sizeof(struct dtnilai));
            sisip = (struct dtnilai*)malloc(sizeof(struct dtnilai));
            printf("Masukkan Data Yang Akan Disisipkan \n");
            printf("NRP :\n"); gets_s(sisip->nrp); //<- cant input
            printf("Nama :\n"); gets_s(sisip->nama);
            printf("Nilai Test :\n"); (sisip->nilai); //<-cant input
            printf("Data disisipkan setelah data ? (nama) : ");
            gets_s(cari);
            //gets_s(cari);
            stl = ujung;
            while(strcmp(stl->nama, cari) != 0) //<- error
            {
                stl = stl->next;
            }
            sisip->next = stl->next;
            stl->next = sisip;
        }
    }
    void tampil_list();
    {
        struct dtnilai* tampil;
        printf("Data Mahasiswa yang telah diinputkan :\n");
        printf("NRP\tNama\tNilai\n");
        tampil = ujung;
        while (tampil != NULL)
        {
            printf("%s\t%s\t%6.2f\n", tampil->nrp, tampil->nama,
                tampil->nilai);
            tampil = tampil->next;
        }
    }

}

在此行

printf("NRP :\n"); gets_s(sisip->nrp); //<- cant input
        printf("Nama :\n"); gets_s(sisip->nama);
        printf("Nilai Test :\n"); (sisip->nilai); //<-cant input, also if i put gets_s in here i get error.
        printf("Data disisipkan setelah data ? (nama) : ");
        gets_s(cari);

最初用于gets_s的是“ gets”,但“ gets”的get标识符未定义,我也尝试使用fgets,scanf,但是它不起作用

对不起,我的英语。

0 个答案:

没有答案
相关问题