ubyte to string with @nogc - different behaviors
pwplus7 at gmail.com
Mon Aug 10 03:56:16 UTC 2020
On Wednesday, 5 August 2020 at 21:15:10 UTC, Luhrel wrote:
> On Wednesday, 5 August 2020 at 20:28:22 UTC, Steven
> Schveighoffer wrote:
>> But still, you are mallocing a block and throwing it away.
>> And I realize, this wouldn't have worked anyway, as str is a
>> string, which means you can't overwrite the data.
>> I think there is likely a better way to do what you are trying
>> to do.
> Maybe with a ref parameter, but I think this will only move the
> problem outside the function.
>> What is the source of the incoming data? Will it be around by
>> the time you need to use this string? Can you just slice it
>> without copying? I'm not familiar with this code, so I don't
>> know the requirements.
>> I would think:
>> return cast(const(char))buffer[0 .. strnlen(buffer.ptr,
>> or something like that.
> Will try that.
What am I missing here ??
Prior to reading this post, I would have tried
ubyte ss= [0x23, 0x24, 0x25, 0x26] ; writeln ("ss ", ss);
.. which outputs (as expected) ss [35, 36, 37, 38]
And to convert ss to string, I would have tried :
string sss = cast(string) ss; writeln ("sss ", sss);
.. which outputs (as expected) sss #$%&
So, unless I'm missing something, isn't converting ubyte to
string super simple ?
More information about the Digitalmars-d