@safe question

forkit forkit at gmail.com
Tue Jan 11 10:57:28 UTC 2022


On Monday, 10 January 2022 at 03:21:46 UTC, Paul Backus wrote:
>
> Taking the address of a local variable is forbidden in @safe 
> code. Even though str is a ref variable that points to a 
> heap-allocated string, it is still considered a local variable 
> because it is declared inside the body of a function.

but strings[] is also a local variable declared in the body of 
the same function, and yet within the foreach statement, @safe 
lets me do:

pointers ~= &strings[i]; // safe

...but not this below, where str is just a reference to the exact 
same memory as the statement above... is it not? How is this 
below any more or less safe than the above statement.

pointers ~= &str;  // not safe - ok, but why??



More information about the Digitalmars-d-learn mailing list