On Fri, Oct 04, 2019 at 06:34:40PM +0000, Dennis via Digitalmars-d-learn wrote:
> On Friday, 4 October 2019 at 18:30:17 UTC, IGotD- wrote:
> > What if you pass a static array to a function that expects a dynamic
> > array. Will D automatically create a dynamic array from the static
> > array?
> 
> No, you have to append [] to create a slice from the static array.

Actually, it *does* automatically convert the static array to a slice.
Which is actually a bug, because you get problems like this:

        int[] func() {
                int[5] data = [ 1, 2, 3, 4, 5 ];
                return data; // implicit conversion to int[]
        }
        void main() {
                auto data = func();
                // Oops: data now references out-of-scope elements on the stack.
                // Expect garbage values and stack corruption exploits.
        }

See:
        https://issues.dlang.org/show_bug.cgi?id=15932


T

-- 
"How are you doing?" "Doing what?"

Reply via email to