Τι θα κάνει το ακόλουθο πρόγραμμα;
#include <stdio.h>
#include <stdlib.h>
int main() {
char *bomb = malloc(sizeof(char) * 9000000);
printf("Hello World\n");
return 0;
}
Τι θα κάνει αν η malloc ζητήσει sizeof(char) * 900000000000L bytes; Και τι αν
μετά από αυτή την κλήση προσθέσουμε τη γραμμή bomb[0] = 'A'; πριν το printf;
Πώς πρέπει να διορθωθεί το πρόγραμμα;
Συγκρίνετε κάθε μέγεθος με τη μνήμη του υπολογιστή σας. Τι επιστρέφει η malloc
όταν δεν υπάρχει αρκετή μνήμη, και τι γίνεται όταν γράφουμε σε αυτή τη διεύθυνση;
Αριθμός στον οδηγό: Α13.5
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec13-heap-bomb ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec13-heap-bomb.html ·
Markdown (GitHub)