2.1 Κατασκευάστε το πρόγραμμα array.c που να διαβάζει από την είσοδο τη διάσταση
ενός μονοδιάστατου πίνακα ακεραίων (έστω N), να δεσμεύει χώρο N θέσεων δυναμικά και
έπειτα να τον αρχικοποιεί διαβάζοντας από την είσοδο ακέραιους αριθμούς.
Δυναμική δέσμευση μνήμης για μονοδιάστατο πίνακα
Συνάρτηση
void *malloc(size_t size)Χρήση:
ΤΔ *p;— δήλωση ενός δείκτη σε στοιχεία τύπου ΤΔp = malloc(N * sizeof(ΤΔ));— δέσμευση μνήμης για N στοιχεία τύπου ΤΔΗ
mallocεπιστρέφειNULLσε περίπτωση αποτυχίας δέσμευσης της αιτούμενης μνήμης.
Αποδέσμευση μνήμης για δυναμικά δεσμευμένους πίνακες
Συνάρτηση
void free(void *p)Χρήση:
free(p);όπουpείναι δείκτης σε θέσεις μνήμης που έχουν δεσμευθεί δυναμικά.
Όταν χρησιμοποιούνται οι συναρτήσεις malloc() και free(), πρέπει να γίνεται
συμπερίληψη του αρχείου επικεφαλίδας stdlib.h.
Γράψτε μια συνάρτηση print_array που να εκτυπώνει τα στοιχεία του πίνακα σε μία γραμμή
χωρισμένα με στηλογνώμονα (tab).
2.2 Κατασκευάστε το αρχείο input.txt το οποίο να περιέχει N+1 ακέραιους αριθμούς
ως εξής: Ο πρώτος αριθμός είναι το πλήθος των στοιχείων (N) και ακολουθούν οι N
ακέραιοι χωρισμένοι με κενά.
2.3 Εκτελέστε το πρόγραμμα array με ανακατεύθυνση εισόδου από το αρχείο
input.txt.
2.4 Επεκτείνετε το πρόγραμμά σας, με μια συνάρτηση print_average ώστε να
εκτυπώνεται ο μέσος όρος των στοιχείων του πίνακα.
Διαβάστε πρώτα το N, δεσμεύστε και ελέγξτε αμέσως αν η malloc επέστρεψε NULL. Μετά
ο δείκτης χρησιμοποιείται ακριβώς σαν πίνακας (p[i]). Μην ξεχάσετε την free στο
τέλος, και τη μετατροπή σε double στον μέσο όρο.
Αριθμός στον οδηγό: Α12.8
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: lab-lab07-array ·
Σύνδεσμος: https://progintro.github.io/study/questions/labs/lab-lab07-array.html ·
Markdown (GitHub)