C/Memory/Memory Save

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Save array in memory into file

<source lang="cpp">

  1. include <stdio.h>
  2. include <stdlib.h>

int main(void) {

 int i;
 double *p;
 FILE *fp;
 /* get memory */
 p = malloc(10 * sizeof(double));
 if(!p) {
   printf("Allocation Error");
   exit(1);
 }
 /* generate 10 random numbers */
 for(i = 0; i < 10; i++)
   p[i] = (double) rand();
 if((fp = fopen("my.txt", "wb")) == NULL) {
   printf("Cannot open file.\n");
   exit(1);
 }
 /* write the entire array in one step */
 if( fwrite(p, 10*sizeof(double), 1, fp) != 1) {
   printf("Write Error.\n");
   exit(1);
 }
 fclose(fp);
 free(p); /* free memory */
 /* get memory again */
 p = malloc(10 * sizeof(double));
 if(!p) {
   printf("Allocation Error");
   exit(1);
 }
 if((fp = fopen("my.txt", "rb"))==NULL) {
   printf("Cannot open file.\n");
   exit(1);
 }
 /* read the entire array in one step */
 if(fread(p, 10 * sizeof( double ), 1, fp) != 1) {
   printf( " Read Error.\n " );
   exit( 1 );
 }
 fclose( fp );
 /* display the array */
 for(i = 0; i < 10; i++) 
     printf("%f ", p[ i ]);
 free(p);
 return 0;

}


      </source>