Привет вот моя проблема
FILE *sourcefile;
if ((sourcefile = fopen(argv[1],"r")) == NULL) //Opens File
{
printf("Error: Could not open %s\n",argv[1]);
return 0;
}
fseek(sourcefile, 0 , SEEK_END); // Sets file pointer at the end of the file
unsigned int fSize = ftell(sourcefile); // Determines file size by the position of file pointer
fseek(sourcefile, 0 , SEEK_SET); // Sets file pointer at the start of the file
char *buffer = (char *) malloc(fSize);
if (buffer == NULL)
{
printf("Error: Not enough system memory\n");
return 0;
}
printf("%d\n",sizeof(buffer));
printf("%d\n",fSile);
fread (buffer,1,fSize,sourcefile);
fclose (sourcefile);
Мой код просто открывает файл и загружает его содержимое в память. Проблема в том, что когда я использую
char *buffer = (char *) malloc(fSize)
он выделяет только 4 байта, а не полный размер файла (т.е. 25 байт при открытии простого txt с небольшим предложением). Когда я печатаю размеры buffer
и fSize
в конце, я получаю 4 и 25 соответственно, поэтому fSize
правильно. Любая идея, почему это происходит?
Спасибо,