You have to construct the contained objects explicitly. An Array without initialization just contains junk memory for all types.
bs = Array(B, npop) for i in 1:npop bs[i] = B() end -- John On Jul 25, 2014, at 5:36 PM, Ross Boylan <[email protected]> wrote: > I think I've narrowed down my previous problem. I have a composite type > that has members, some of which are arrays. How do I initialize those > inner arrays properly? Actually, I have an earlier problem: the objects > aren't being created at all. Here's what I tried (nstep and npop > previously set): > julia> type B; i::Vector{Int}; end > > julia> B() = B(zeros(Int, nstep)) > B (constructor with 3 methods) > > julia> typeof(B) > DataType > # but isn't B also the name of a function? > > julia> bs = Array(B, npop) > 4-element Array{B,1}: > #undef > #undef > #undef > #undef > > My hope was that defining what would be a default constructor in C++, > name B(), would establish the initial values for the vector elements > bs[i]. It didn't. > > How do I create an Array of B's that are properly initialized? > > Thanks. > Ross Boylan > > julia 0.3 >
