Δημοσιεύτηκε: 16 Φεβ 2012, 17:35
Star_Light έγραψε:Οταν έχωSpoiler: show
Α) Τοτε στην 1η στατική περιπτωση δηλωσης ενος string άν εγω δωσω λέξη μήκους 60 τα 20 έχουν δεσμευτεί στην μνήμη και μένουν αχρησιμοποίητα?
21 έχουν δεσμευτεί κι έχουν μείνει αχρησιμοποιητα
έγραψε:
Β) Δινω ακριβως στο 2ο παράδειγμα την μνήμη που θέλω να δεσμευτεί καθε φορα μεσω της MAXSLEN
Όχι κάθε φορά, την 1η μόνο φορά, αργότερα μπορείς να το κάνεις realloc() σε διαφορετικό μέγεθος. Επίσης είναι τελείως λάθος αυτό που έχεις γράψει για το δυναμικό s! Το σωστό είναι έτσι...
- Κώδικας: Επιλογή όλων
char *s1 = NULL;
...
s1 = calloc( MAXSLEN, sizeof(char));
if ( !s ) {
// handle the error here
}
...
free(s);
Το αν θα το φτιάξεις αρχικά με MAXSLEN ή με κάποιο νούμερο που θα σου δώσει χρήστης είναι δική σου απόφαση.