Всем доброго времени суток, у меня следущая проблема, не выводиться на экран текст записей из файла, если раскоментировать указаный в тексте код, тогда выводиться но не то что надо:
#include <stdio.h> #define base_size 50 struct writer { char *lastname; char *id; char *bookname; int yearofedition; }; int main() { FILE *p_file, *e_file; unsigned short int n_in; writer *e_avtor, *t_avtor; p_file = fopen("P.dat", "wb"); e_avtor->lastname="Shevchenko"; e_avtor->id="T.G."; e_avtor->bookname="Kobzar"; e_avtor->yearofedition=1830; n_in = fwrite(e_avtor, sizeof(*e_avtor), 1, p_file); e_avtor->lastname="Tolstoj"; e_avtor->id="I.V."; e_avtor->bookname="War and Peace"; e_avtor->yearofedition=1879; n_in = fwrite(e_avtor, sizeof(*e_avtor), 1, p_file); e_avtor->lastname="Perymov"; e_avtor->id="A.B."; e_avtor->bookname="Matrx"; e_avtor->yearofedition=1930; n_in = fwrite(e_avtor, sizeof(*e_avtor), 1, p_file); fclose(p_file); if((p_file = fopen("P.dat","rb")) == NULL) { fprintf(stderr,"Can not open file\n"); return 1; } int number_of_record = 0; writer *w_temp[base_size]; printf("%c",'\n'); while(!feof(p_file)) { if ( fread(w_temp[number_of_record], sizeof(*w_temp), 1, p_file) /*== sizeof(*w_temp)*/ ) { // <- вот здесь printf("%s\n", w_temp[number_of_record]->lastname); ++number_of_record; } }//printf(); //for(int i=0;i<base_size;i++) return 0; }