С fwrite я пишу целые структуры? w.e находится в f1 и f2? Любая помощь будет оцененаCструкции будут работать?
typedef struct {
int field1;
int field2;
}mystruct;
int main(int argc,char *argv[])
{
int size=2;
mystruct structarray [size];
int i=0;
for (i=0;i<size;i++)
{
structarray[i]=calloc(1,sizeof(mystruct));
}
FILE *F1;
if (fopen("structfile","wt")==NULL){
err_sys("cannot be opened");
}
i=0;
for (i=0;i<size;i++)
{
structarray[i].field1=i;
}
fwrite(structarray[0].field1,sizeof(mystruct),size,F1);
fclose(F1);
}
Я предполагаю, что это не ваша проблема, но вы уже ставите две структуры 'mystruct' статически - вам не нужно вызывать' calloc', чтобы выделить больше в куче. – aardvarkk
Я бы, вероятно, открыл файл с «wb» для записи двоичного файла, так как вы не печатаете в формате fprintf. Кстати, нормально писать/читать двоичные данные, и это похоже на то, что вы делаете. Просто не пытайтесь читать двоичные данные в виде «текста», потому что в ваших двоичных данных могут быть 0 значений, которые будут путать строковые функции std C. –