Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α12.5 · Πόση μνήμη δεσμεύει η malloc και τι λέει το sizeof

Διάλεξη 12, διαφάνειες 39–40 · Δυσκολία ★★☆ · short-answer · Κεφάλαια: 12, 13

int * nums = malloc(100 * sizeof(int));
double * coeffs = malloc(100 * sizeof(double));
char * str = malloc(100 * sizeof(char));
  1. Πόση μνήμη δεσμεύεται με καθεμιά από τις παραπάνω κλήσεις;
  2. Τι θα τυπώσει το ακόλουθο;
printf("%d %d %d\n", sizeof(nums), sizeof(coeffs), sizeof(str));

Υπόδειξη

Για το (1), η malloc μετρά bytes: υπολογίστε 100 * sizeof(τύπος) με τα συνηθισμένα μεγέθη των τύπων. Για το (2), αναρωτηθείτε ποιος είναι ο τύπος των nums, coeffs και str: πίνακες ή δείκτες; Και τι μέγεθος έχει μια διεύθυνση σε ένα σύστημα 64 bit;

Αριθμός στον οδηγό: Α12.5 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: slides-lec12-malloc-sizeof · Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec12-malloc-sizeof.html · Markdown (GitHub)