Хотя я предпочел бы увидеть подход, основанный на явной сериализации, вы можете попробовать:
fwrite(&obj.totalFreq,sizeof(int),1,dat_fd2);
fwrite(&obj.docIDList[0],sizeof(int),obj.totalFreq,dat_fd2);
Предполагая, что totalFreq == docIDList.size (), это ложная переменная, поэтому лучшей реализацией будет:
size_t size=obj.docIDList.size();
fwrite(&size,sizeof(size_t),1,dat_fd2);
fwrite(&obj.docIDList[0],sizeof(int),size,dat_fd2);
Моя предпочтительная реализация будет:
size_t size=obj.docIDList.size();
fwrite(&size,sizeof(size_t),1,dat_fd2);
for (size_t i=0;i<size;i++)
{
int id=obj.docIDList[i];
fwrite(&id,sizeof(int),1,dat_fd2);
}