Convert C array pointer to a D slice without data copy
ParticlePeter via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon May 18 02:44:24 PDT 2015
On Monday, 18 May 2015 at 09:23:26 UTC, tcak wrote:
> On Monday, 18 May 2015 at 09:18:33 UTC, ParticlePeter wrote:
>> I get the point to an array from a c function, the data size
>> from another function. The data should be only readable at the
>> D side, but I would like to use it as a D slice without
>> copying the data. Is this possible ?
>
> char* dataPtr;
> size_t dataLen;
>
> auto data = dataPtr[0 .. dataLen];
>
> This doesn't do any copying. BUT I am not sure what GC would be
> doing about it. After you use it, you might want to set `data`
> to null in case of a problem.
Thanks, works. Should be in the "Interfacing to C" Reference
Article.
More information about the Digitalmars-d-learn
mailing list