Matrice 3D dinamica, in C

di il
22 risposte

22 Risposte - Pagina 2

  • Re: Matrice 3D dinamica, in C

    Non ho i permessi ad accedere a quale memoria perchè?
  • Re: Matrice 3D dinamica, in C

    Il codice sorgente non l'errore...
  • Re: Matrice 3D dinamica, in C

    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
        int i, n, res, k;
        char appoggio[20];
        FILE *fp=fopen("piatti.txt", "r");
        char*** matrice=(char ***)malloc(100*sizeof(char**));
        for (fscanf(fp, "%d", &n), i=0; res!=EOF; res=fscanf(fp, "%d ", &n), matrice[i]=(char **)malloc(n*sizeof(char*)), i++)
        {
            for (k=0; k<n; k++)
            {
                fscanf(fp, "%s", appoggio);
                matrice[i][k]=(char *)malloc((strlen(appoggio)+1) * sizeof(char));
    
                strcpy(matrice [i][k], appoggio);
    
            }
    
        }
        printf("%s\n", matrice [0][0]);
        return 0;
    }
  • Re: Matrice 3D dinamica, in C

    Non mi pare che sia il codice che ti ho suggerito io ...
  • Re: Matrice 3D dinamica, in C

    Ma non funziona neanche con il tuo.
  • Re: Matrice 3D dinamica, in C

    Il mio funziona (con la correzione della strlen) ...
  • Re: Matrice 3D dinamica, in C

    Ora, perché crearsi questi problemi inutilmente e ostinarsi a fare qualcosa di contorto? Oramai lo sanno anche i muri che malloc va evitata come la peste! Ragionevolmente un ristorante non cucinerà più di un centinaio di pietanze perciò un semplice array statico con dimensione pari a 128 elementi dovrebbe essere sufficiente per contenere tutti i piatti del menù. Si potrebbe fare qualcosa del genere
    
    .....
    typedef struct dish
    {
        char description[DESC_SIZE];
        unsigned int code;
        float price;
    }
    ....
    
    Poi
    
    .....
    dish menu[NUMB_OF_DISHES];
    ......
    
    semplice no?
    PS:
    Se proprio si è malloc-dipendenti si possono usare le liste ricordando di controllare il puntatore restituito da malloc e di liberare la memoria una volta svolte tutte le operazioni del caso.
  • Re: Matrice 3D dinamica, in C

    Che si potesse/dovesse fare con delle strutture ne avevamo già disquisito ... era stato suggerito ma la risposta era stata che voleva comunque farlo con gli array dinamici ...
Devi accedere o registrarti per scrivere nel forum
22 risposte