memory layout in c with examples