Facile:
se l'array fosse

int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0};

funzionarebbe tutto!!
il problema è che senza lo 0 finale non mette l'ultimo elemento della lista a null!! e quindi il ciclo di stampa va avanti finche' non trova uno 0 memorizzato casualmente in memoria!
OK??