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(); }
гостевая; E-mail |