Returning dynamic array from the function?

rikki cattermole rikki at cattermole.co.nz
Sat Sep 8 09:36:21 UTC 2018


On 08/09/2018 9:34 PM, SuperPrower wrote:
> I have a function that produces dynamic array of strings. I would like 
> to return this array from this function. I understand that dynamic 
> arrays are of reference type, and thus if I try to return array 
> variable, I will actually return a pointer to the first element of the 
> array on the heap. Problem is, when I return dynamic array and try to 
> print it outside of the function, I see garbage in a first few elements.
> 
> My humble experience with languages like C++ doesn't really help with 
> understanding how Garbage Collector (if it's because of it, because if I 
> understand correctly, I can imagine memory being de-allocated because we 
> get out of scope of local variable that points to the array, thus there 
> are no more pointers to this memory, thus it gets de-allocated, but we 
> still return reference to this memory, so GC shouldn't really free it?) 
> can cause this - can anyone please explain me what's exactly going on 
> and what would be the proper way to return dynamic array from the 
> function? Thanks in advance.

We're going to need to see a minified version of the code to see what 
you're doing.


More information about the Digitalmars-d-learn mailing list