Static array initialisation

Steven Schveighoffer schveiguy at gmail.com
Wed Mar 31 18:00:32 UTC 2021


On 3/31/21 1:54 PM, DLearner wrote:
> On Wednesday, 31 March 2021 at 17:46:25 UTC, Imperatorn wrote:
>> 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
>>
>> When I look there are 100. What makes you think there are 101?
> 
> I printed bytes from &MemPool[0] to just beyond &MemPool[99}.

When you look beyond the bounds of where you have access to, you are 
bound to see just about anything.

The answer is no, the compiler does not write to memory beyond the 100 
elements. That memory *might* happen to have an 8 in there. That's not 
proof of anything though.

-Steve


More information about the Digitalmars-d-learn mailing list