What does program do when array is returned from function?

via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jun 4 02:42:02 PDT 2015


On Thursday, 4 June 2015 at 07:20:24 UTC, Daniel Kozák wrote:
>
> On Thu, 04 Jun 2015 07:03:30 +0000
> tcak via Digitalmars-d-learn 
> <digitalmars-d-learn at puremagic.com> wrote:
>
>> [code]
>> char[] test(){
>>     auto t = new char[5];
>> 
>>     return t;
>> }
>> [/code]
>> 
>> Is the test function returning just a pointer from heap or 
>> does copy operation?
>> 
>
> this is same as:
> auto t = new char[](5)
>
> it will return array(which is struct with pointer to data and 
> size)
>
>> It is not obvious what it does, and I am trying to avoid doing 
>> this always.
>
> there is no reason.
>
> But be carefull, this could be wrong
>
> [code]
> char[] test(){
>     char[5] t;
>     return t;
> }
> [/code]

Fortunately this doesn't even compile with current DMD.


More information about the Digitalmars-d-learn mailing list