But why i´m overwriting the struct if its the first time i´m putting it there? (like on the array).
The compiler doesn't know it is the first time (it doesn't follow the data from creation, it just looks at that individual line, and first time write is no different than later writes with the associative array index, whereas array append is different so it can tell).