I'll hazard a guess then I'll go away and check what I say is correct :-)int * a= newint[10]; says you want 10 integers which will be initialised with the dafault constructor which for inegers does nothing so they will have random values.
int * b=newint(89) syas you want 1 integer initialised to value 89.
That is because the () signifies a call to a constructor.