首页 > 解决方案 > C函数在列表中插入项目

问题描述

我必须创建一个列表,其中每个节点都包含游戏的信息。数据通过键盘获取。所以我必须在列表中创建一个插入函数(inserisciTestaLista),但是当我运行程序时停止。我没有编译错误。这是输出:

...\Debug\progetto1.exe (processo 7356) terminato. Codice restituito: -1073741819.
Premere un tasto qualsiasi per chiudere questa finestra...

这是代码

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

typedef struct s_partita {
    char team1[32], team2[32];
    int set1, set2;
    char data[11];
}t_partita;

typedef struct nodo {
    t_partita info;
    struct nodo  *next;
}t_nodo, *lista;

void inserisciTestaLista(lista *L, t_partita partita) {
    lista aux;
    aux = (lista)malloc(sizeof(t_nodo));
    if (aux == NULL)
        exit(1);
    aux->info = partita;
    aux->next = *L;
    *L = aux;

}


int main() {
    int scelta = 0;
    lista L = NULL;
    t_partita  partita;

    do {
        printf("*****************MENU**************\n");
        printf("0. ESCI\n");
        printf("1. inserisci partita\n");
        printf("2. stampa lista\n");
        scanf("%d", &scelta);
        switch (scelta) {
        case 1: {
            printf("Inserisci team 1: ");
            scanf("%s", partita.team1);
            printf("Inserisci team 2: ");
            scanf("%s", partita.team2);
            printf("Inserisci punteggio (esempio 3-1): ");
            scanf("%d%d", &partita.set1, &partita.set2);
            printf("Inserisci data (esempio 2020-01-01): ");
            scanf("%s", partita.data);

            inserisciTestaLista(L, partita);
            break;
        }
        case 2: {

            break;
        }
        }
    } while (scelta != 0);

}

标签: clist

解决方案


您可以从第 49 行的列表中传递内存地址。

  inserisciTestaLista(&L, partita);

推荐阅读