Με την πρώτη σου παρατήρηση συμφωνώ.
Όσο για το δεύτερο:
Έχουμε πει ότι το διάβασμα τιμών σε μεταβλητές δεν πρέπει να γίνεται σε συνάρτηση, οπότε μάλλον εννοείς να μπει άλλη μια τυπική παράμετρος στη λίστα ορισμάτων η οποία να επιστρέφει τον γεμάτο πίνακα στο κυρίως....!!!!!!!!!!
Αλλά και πάλι, ποιο το νόημα του να δίνεις έναν άδειο, (ή γεματο) πίνακα να (ξανα)γεμίσει σε ένα υποπρόγραμμα χωρίς να επιστρέφει στο κυρίως?

Πιστεύω λοιπόν ότι η συγκεκριμένη "λειτουργία" είναι σωστή, όμως έχω μια τρίτη παρατήρηση:
Εφόσον το πλήθος γραμμών θεωρείται γνωστό (μια που δε διαβάζεται μέσα στη διαδικασία), γιατί δε δηλώνουμε τον πίνακα σαν
Πίνακας[Πλήθος_γραμμών], παρά χρησιμοποιούμε το μέγιστο μέγεθός του?

(Επίσης, αν θες, ρίξε μια ματιά στο θέμα "τοπικές μεταβλητές" να μου πεις τη γνώμη σου...Ευχαριστώ)