Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c] lettura matrice da file più allocazione

    Ho un problema strano, non riesco a far leggere una matrice quadrata da file ememorizzarla in un array bidimensionale allocato dinamicamente.

    La matrice è memorizzata nel file in questo modo:

    4
    0 1 1 0
    1 0 1 1
    0 0 0 1
    1 1 0 0

    dove nella prima riga ho la dimensione e poi dalla seconda riga in poi ho la matrice. Il codice che uso per fare tuuto il lavoro è questo:
    codice:
     
    int** mappa;
    int dim,i,j;
    char* filemap;
    FILE * sorgente;
       
    dim=0;
        
    printf("Digita il nome del file dove risiede la mappa da analizzare: ");
    scanf("%s",filemap);
    
    sorgente=fopen(filemap,"r"); /* apre il file sorgente */
    if( sorgente==NULL ){
            printf("Errore in apertura del file");
            return 0;
    }
    rewind(sorgente); /* resetta l'offset del file */
    fscanf(sorgente,"%d\n",&dim); /* legge la dimensione dalla prima riga del file */
        
    if (dim==0){
        printf("errore");
        return 0;
    }
    
    /* Allocazione strutture dati */
    
    mappa=(int**)calloc(dim,sizeof(int*)); /* alloca puntatori alle righe */
    if (mappa==NULL){
        printf("errore di allocazione");
        return 0;
    }
    for(i=0;i<dim;i++) /* ciclo di allocazione */
    {                    
    mappa[i]=(int*)calloc(dim,sizeof(int));
    if (mappa[i]==NULL){
       printf("errore di allocazione");
       return 0;
    }
    }
    
    /* inizializzazione matrice di adiacenza */
    for(i=0;i<dim;i++){
    for(j=0;j<dim;j++){
    	fscanf(sorgente,"%d",&tmp);
            mappa[i][j]=tmp;
    }
    }
    Cosa c'è di sbagliato???

  2. #2
    potete anche chiudere, ho risolto. Il codice è buono, non so perchè mi era partito il compilatore

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 © 2024 vBulletin Solutions, Inc. All rights reserved.