Ci mancava anche la sfortuna... Non so per quale motivo, ma sotto Windows molti programmi C vanno in crash durante l'input dei dati (anche programmi che so per certo corretti e funzionanti), e anche questo esercizio mi dà problemi . Nel frattempo che rimetto su Linux, qualcuno può dirmi se sto procedendo bene? Per il momento ho cercato di inserire i valori nella lista, ma nelle guide ho trovato solo esempi di liste con un solo elemento, è corretto l'input come l'ho fatto io?

codice:
#include <stdio.h>

struct PB {
       double a;
       double b;
       double c;
       struct PB *next;
};

struct PB *crea_parabole();


int main() {
    struct PB *parabole;
    parabole = crea_parabole();
}

struct PB *crea_parabole(){
       struct PB *p, *punt;
       int i, n;
       
       printf("Specificare il numero di elementi: ");
       scanf("%d", &n);
       
       if (n == 0) {
          p = NULL;
       } else {
              p = (struct PB *)malloc(sizeof(struct PB));
              printf("Inserisci il primo valore: ");
              scanf("%f %f %f", &p->a);                                   <-----------------------
              punt = p;
              
              for (i = 2; i <= n; i++) {
                  punt->next = (struct PB *)malloc(sizeof(struct PB));
                  punt = punt->next;
                  printf("Inserisci il %d° elemento: ", i);
                  scanf("%f %f %f", &punt->a);                           <-----------------------
              }
              punt->next = NULL;
       }
       return(p);
}