int array[10];
имеет два разных поведения. Используемый внутри функции, он выделит 10 неинициализированных целых в стеке. Вне функции он выделит 10 инициализированных нулем целых в памяти BSS.
new int[10];
выделяет десять неинициализированных целых в куче.
new int(10);
выделяет одно целое в куче со значением 10.