Originariamente inviato da uMoR
se no la realloc ma sono impazzito
se qualcuno sa usarla meglio di me.. benvenga
Ciao, dico anche la mia.
Visto che la dimensione del file è nota a priori credo che sia meglio una malloc():
codice:
// MinGW code
#include <iostream>
//per il BCC32:
// #include <iostream.h>
#include <conio.h>
int main()
{
FILE *file;
char ch, *buff, FileName[256]="pippo1.txt";
int indice, fileDim = 0;
if (( file = fopen( FileName, "rb")) != NULL)
{
// 'Conto quanti bytes ci sono nel file
while( ! feof( file ) )
{
fgetc( file );
fileDim++;
}
fileDim--,
printf("Dimensione del file %s = %d\n", FileName, fileDim);
// Alloco la memoria necessaria per contenere il file +1
buff = (char*) malloc(sizeof(char) * fileDim+1);
// Mi riporto all' inizio del file
fseek(file, 0, SEEK_SET);
for(indice=0; indice<fileDim; indice++)
{
buff[indice] = fgetc( file );
}
printf("Contenuto del file :\n%s", buff);
fclose(file);
}
getch();
return 0;
}
La realloc() è abbastanza lenta, meglio evitarla se possibile.