On Wednesday, 31 March 2021 at 17:27:44 UTC, DLearner wrote:
Hi
I did:
immutable uint MemSize=100; // Memory size in bytes.
// Memory Pool
ubyte[MemSize] MemPool = 8;
And had a look in memory.
I think the compiler set up 101 '8's, not 100 in memory.
Which I did not expect.
Best regards
It's a bit interesting though.
The behavior seems to vary a bit between compilers.
DMD:
ubyte[100] example.MemPool:
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,008h,008h,008h,008h
;........
db 008h,008h,008h,008h,000h,000h,000h,000h
;........
db 000h,000h,000h,000h,000h,000h,000h,000h
;........
LDC:
ubyte[100] example.MemPool:
.zero 100,8
GDC:
ubyte[100] example.MemPool:
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
.byte 8
As you can see, all have 100 valid values, but DMD seems to be
aligning to a multiple.