Visualizzazione dei risultati da 1 a 10 su 21

Discussione: [C] esercizio struct

Visualizzazione discussione

  1. #1

    [C] esercizio struct

    ciao a tutti, ho nuovamente un problema sulle struct.
    la funzione deve rimanere tale quindi le vostre correzioni vanno apportate o dentro il main o dentro la funzione ma i valori che questa accetta non possono essere mutati.

    posto il codice e allego il file da cui vanno letti dei valori.
    a fine esercizio si deve avere un puntatore a variabile unsigned int che indica il numero di righe del file che viene passato come secondo parametro alla funzione. la funzione deve restituire un puntatore alla struct che abbia dentro tutti i valori del file. il primo parametro da passare alla funzione + il nome del file che va poi aperto dentro la funzione.
    non capisco dove sbaglio. quando vado a gestire struct e malloc dentro le funzioni mi cominciano i guai, che diamine.
    grazie in anticipo a chi vorrà dedicarmi un pò del suo tempo.

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    struct dato {
        double valore;
        unsigned int classe;
    };
        struct dato *p;
    
    
    struct dato *read_dati (const char *filename, unsigned int *pn) {
        
    
    
        FILE *fp;
        unsigned int x=0;
        unsigned int tmp1;
        double tmp2;
        fp=fopen(filename, "rt");
        if(fp==NULL)
            exit(EXIT_FAILURE);
        while(feof(fp)==0) {
            fscanf(fp, "%lf %lu", &tmp2, &tmp1);
            x++;
        }
        pn=&x;
        p=malloc(x*sizeof(struct dato));    
        fread(p, sizeof(struct dato), x, fp);
        for(tmp1=0; tmp1<x; tmp1++)
            printf("%lf %lu \n", p[tmp1].valore, p[tmp1].classe);
        return p;
    }
    
    
    int main(void) {
        char nomefile[]="dati1.txt";
        unsigned int *puntatore=0;
        read_dati(nomefile, puntatore);
        }
    File allegati File allegati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.