http://d.puremagic.com/issues/show_bug.cgi?id=6153
SomeDude <lovelyd...@mailmetrash.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lovelyd...@mailmetrash.com --- Comment #1 from SomeDude <lovelyd...@mailmetrash.com> 2012-04-24 07:56:49 PDT --- The following works correctly: import std.stdio; import std.container; int main() { alias Array!int Arr1D; alias Array!Arr1D Arr2D; auto arr1D = Arr1D(); auto arr2D = Arr2D(); writefln("arr1D %s of size = %d", arr1D, arr1D.length()); arr1D.insert(1); arr1D.insert(2); writefln("arr1D %s of size = %d", arr1D[0], arr1D.length()); arr2D.insert(arr1D); writefln("arr2D %s of size = %d", arr2D, arr2D.length()); writeln(arr2D[0][0], arr2D[0][1]); return 0; } It produces the output: PS E:\DigitalMars\dmd2\samples> rdmd a.d arr1D Array!(int)(RefCounted!(Payload,cast(RefCountedAutoInitialize)0)(_RefCounted(null))) of size = 0 arr1D 1 of size = 2 arr2D Array!(Array!(int))(RefCounted!(Payload,cast(RefCountedAutoInitialize)0)(_RefCounted(A623F0))) of size = 1 12 PS E:\DigitalMars\dmd2\samples> However inserting ints in arr1D *after* having inserted it in arr2D produces access violations: import std.stdio; import std.container; int main() { alias Array!int Arr1D; alias Array!Arr1D Arr2D; auto arr1D = Arr1D(); auto arr2D = Arr2D(); arr2D.insert(arr1D); writefln("arr2D %s of size %d", arr2D[0], arr2D.length()); arr2D[0].insert(1); arr2D[0].insert(2); writefln("array size after insert: %d", arr2D[0].length()); //writeln(arr2D[0][0], arr2D[0][1]); return 0; } produces: PS E:\DigitalMars\dmd2\samples> rdmd bug.d arr2D Array!(int)(RefCounted!(Payload,cast(RefCountedAutoInitialize)0)(_RefCounted(null))) of size 1 array size after insert: 0 PS E:\DigitalMars\dmd2\samples> It seems that the reason is, as long as arr1D has no elements inserted via insert, it's not allocated and arr2D[0] is null. See also issue 7901. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------