digitalmars.D.learn - What does program do when array is returned from function?
- tcak (10/10) Jun 04 2015 [code]
- Daniel =?UTF-8?B?S296w6Fr?= via Digitalmars-d-learn (13/26) Jun 04 2015 this is same as:
- "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm gmx.net> (2/30) Jun 04 2015 Fortunately this doesn't even compile with current DMD.
- tcak (3/41) Jun 04 2015 Yes. Trying to return a variable from stack doesn't sound like a
[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? It is not obvious what it does, and I am trying to avoid doing this always.
Jun 04 2015
On Thu, 04 Jun 2015 07:03:30 +0000 tcak via Digitalmars-d-learn <digitalmars-d-learn 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]
Jun 04 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 puremagic.com> wrote:Fortunately this doesn't even compile with current DMD.[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]
Jun 04 2015
On Thursday, 4 June 2015 at 09:42:04 UTC, Marc Schütz wrote:On Thursday, 4 June 2015 at 07:20:24 UTC, Daniel Kozák wrote:Yes. Trying to return a variable from stack doesn't sound like a good idea other than copying its value somewhere else.On Thu, 04 Jun 2015 07:03:30 +0000 tcak via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:Fortunately this doesn't even compile with current DMD.[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]
Jun 04 2015