Do strings with enum allocate at usage point?

"岩倉 澪" via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Mar 17 11:21:15 PDT 2015


I often hear it advised to avoid using enum with arrays because 
they will allocate at the usage point, but does this also apply 
to strings?
strings are arrays, so naively it seems that they would, but that 
seems odd to me.
I would imagine string literals end up in the data segment as 
they are immutable.

As a continuation of this question, I know that string literals 
have an implicit null delimiter, so it should be correct to pass 
a "literal".ptr to a function taking a C-string, and presumably 
this still applies when using enum.
However, if enum implies allocation at the usage point for 
strings, one would be better served with static, meaning one 
would need to be explicit: static foo = "bar\0"?


More information about the Digitalmars-d-learn mailing list