On 2/25/12, Andrej Mitrovic <andrej.mitrov...@gmail.com> wrote: > This doesn't work for heap-allocated structs. >
Sorry my bad. .sizeof should always be set on Types and not variable names, because a struct pointer will have sizeof == size_t, whereas a simple struct variable will have sizeof equal to the struct size. So it can work just fine with heap-allocated structs: void main() { auto lal = new nagger(); lal.name = "name"; lal.age = 23; lal.weight = 108.5; lal.msg = "msg"; auto file = File("test.bin", "w"); auto writeBytes = fwrite(cast(void*)lal, byte.sizeof, nagger.sizeof, file.getFP()); file.close(); nagger dup; file = File("test.bin", "r"); auto readBytes = fread(&dup, byte.sizeof, nagger.sizeof, file.getFP()); assert(dup == *lal); }