Pers.narod.ru. Алгоритмы. Выделяем динамическую память под файл

Условие задачи:

Выделить память динамически для хранения произвольного файла, имя файла задается пользователем. В случае, если память выделить невозможно, вывести соответствующее сообщение
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <alloc.h>

void main() {
 FILE *fp;
 unsigned char name[128];
 printf ("\nEnter file name: ");
 fgets (name,128,stdin);
 name[strlen(name)-1]='\0';
 fp=fopen(name,"r+b");
 if (fp==NULL) {
  printf ("\Can't open file %s",name);
  exit (1);
 }
 fpos_t len;
 fseek (fp,0,SEEK_END);
 fgetpos (fp,&len);
 unsigned char far *fdata=(unsigned char far *)farmalloc(len);
 if (fdata==NULL) {
  printf ("\Can't allocate %ld bytes",len);
  exit (2);
 }
 unsigned char c;
 unsigned long k=-1;
 fseek (fp,0,SEEK_SET);
 while (1) {
  fread (&c,1,1,fp);
  fdata[++k]=c;
  if (feof(fp)) break;
 }
 for (unsigned long i=0; i<k; i++) putch(fdata[i]);
 getchar();
}

Рейтинг@Mail.ru

вверх гостевая; E-mail
Hosted by uCoz