Δημοσιεύτηκε: 11 Απρ 2012, 00:31
Γεια χαρά,
Τελείωσα το κεφάλαιο 17 και έχω κάποιες απορίες.
Τις παραθέτω.
1. Το παρακάτω είναι το prototype της malloc:
Τι ακριβώς καταλαβαίνουμε από αυτό για τον τύπο που επιστρέφει η malloc;
Είναι ένας pointer σε τι; Είναι μήπως ένας pointer που μπορεί να δείχνει σε οποιονδήποτε τύπο;
2. Είναι η παρακάτω σωστή λύση για την 1η άσκηση της σελίδας 453;
Σε real-life εφαρμογές συνηθίζεται να γίνεται χρήση παρόμοιων συναρτήσεων;
3. Το παρακάτω sample μου δίνει έξοδο 14:
Πως γίνεται να δουλεύει σωστά; Αφού υποτίθεται ότι η a έχει δεσμευμένο χώρο για 3 στοιχεία.
Δουλεύει κατά τύχη ή συμβαίνει κάτι άλλο;
Τελείωσα το κεφάλαιο 17 και έχω κάποιες απορίες.
Τις παραθέτω.
1. Το παρακάτω είναι το prototype της malloc:
- Κώδικας: Επιλογή όλων
void *malloc(size_t size);
Τι ακριβώς καταλαβαίνουμε από αυτό για τον τύπο που επιστρέφει η malloc;
Είναι ένας pointer σε τι; Είναι μήπως ένας pointer που μπορεί να δείχνει σε οποιονδήποτε τύπο;
2. Είναι η παρακάτω σωστή λύση για την 1η άσκηση της σελίδας 453;
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
void *my_malloc(size_t size)
{
void *s = malloc(size);
if (!s) {
puts("error: out of memory");
exit(EXIT_FAILURE);
}
return s;
}
Σε real-life εφαρμογές συνηθίζεται να γίνεται χρήση παρόμοιων συναρτήσεων;
3. Το παρακάτω sample μου δίνει έξοδο 14:
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *a;
a = malloc(3 * sizeof(int));
a[0] = 4;
a[1] = 3;
a[7] = 14;
printf("%d\n", a[7]);
return 0;
}
Πως γίνεται να δουλεύει σωστά; Αφού υποτίθεται ότι η a έχει δεσμευμένο χώρο για 3 στοιχεία.
Δουλεύει κατά τύχη ή συμβαίνει κάτι άλλο;