if you want pass a reference to a reference do
Dog dog[] = { new Dog };
void method( Dog dog[] ) { dog[0] = new Dog(); }
Having this of side effect as a default would be an insane idea ofc., so I am not sure what you are complaining about :-)
Dog dog[] = { new Dog };
void method( Dog dog[] ) { dog[0] = new Dog(); }
Having this of side effect as a default would be an insane idea ofc., so I am not sure what you are complaining about :-)