Problema con puntatore malloc e fscanf

di il
3 risposte

Problema con puntatore malloc e fscanf

Salve a tutti ragazzi non capisco come devo gestire il puntatore restituitomi da malloc io faccio cosi ma il programma non mi va. In pratica utilizzo: una funzione per allocare la memoria che mi restituisce il puntatore alla memoria allocata:
int *AllocateMemory(int r, int c) {
	int *m;
	if (m = (int *)malloc(sizeof(int)*r*c) != NULL)
		return m;
	else {
		printf("Bad memory allocation\n");
		exit (EXIT_FAILURE);
	}
}
e un'altra funzione per legge da file
int Leggi_Matrice(FILE *fp, int *m) {
    int x = 0;
    
    for ( x = 0; x < 100; x++) {
        fscanf( fp, "%d",  &m[ x ]);
        
        if ( feof (fp) == 1 )
            break;
    }
    
    return x;
}
Siccome è una prova d'esame Allocate memory dovrebbe essere corretta ( mi è stata data dal prof) quindi l'errore dovrebbe essere nella seconda e probabilmente in fscanf.

3 Risposte

  • Re: Problema con puntatore malloc e fscanf

    Forse questa riga aveva delle parentesi in più ... scritte così

    if ((m = (int *)malloc(sizeof(int)*r*c)) != NULL)
  • Re: Problema con puntatore malloc e fscanf

    oregon ha scritto:


    Forse questa riga aveva delle parentesi in più ... scritte così

    if ((m = (int *)malloc(sizeof(int)*r*c)) != NULL)
    Ah ok grazie mille era da questa mattina che provavo a vedere cosa avevo sbagliato e invece... xD
  • Re: Problema con puntatore malloc e fscanf

    Le parentesi mancanti causavano un malfunzionamento ... fra l'altro il compilatore doveva segnalarlo, almeno come warning ...
Devi accedere o registrarti per scrivere nel forum
3 risposte