Απελευθέρωση της μνήμης
Όταν τελειώσετε με τη μνήμη που έχει διατεθεί, δεν πρέπει ποτέ να ξεχάσετε ελεύθερος τη μνήμη δεδομένου ότι θα ελευθερώσει επάνω τους πόρους και θα βελτιώσει την ταχύτητα. Για να απελευθερώσετε τη διατιθέμενη μνήμη, χρησιμοποιήστε την ελεύθερη λειτουργία.
free(ptr);
Δομές
Όπως και τους βασικούς τύπους στοιχείων, το γ έχει έναν μηχανισμό δομών που επιτρέπει σε σας για να ομαδοποιήσει τα στοιχεία στοιχείων που συσχετίζονται το ένα με το άλλο με ένα κοινό όνομα. Αυτό αναφέρεται συνήθως ως καθορισμένος χρήστης τύπος.
Η λέξη κλειδί struct αρχίζει τον καθορισμό δομών, και μια ετικέττα δίνει το μοναδικό όνομα στη δομή. Οι τύποι στοιχείων και τα μεταβλητά ονόματα που προστίθενται στη δομή είναι μέλη της δομής. Το αποτέλεσμα είναι ένα πρότυπο δομών που μπορεί να χρησιμοποιηθεί ως προσδιορίζων τύπων. Ο ακόλουθος είναι μια δομή με μια ετικέττα του μήνα.
struct month
{
char name[10];
char abbrev[4];
int days;
};
Ένας τύπος δομών καθορίζεται συνήθως πλησίον στην έναρξη ενός αρχείου χρησιμοποιώντας μια δήλωση typedef typedef καθορίζει και ονομάζει έναν νέο τύπο, επιτρέποντας τη χρήση του σε όλο το πρόγραμμα typedef συνήθως εμφανιστείτε αμέσως αφότου # καθορίστε και # περιλάβετε τις δηλώσεις σε ένα αρχείο.
Η λέξη κλειδί typedef μπορεί να χρησιμοποιηθεί για να καθορίσει μια λέξη για να αναφερθεί στη δομή παρά τη διευκρίνιση της λέξης κλειδιού struct με το όνομα της δομής. Είναι συνηθισμένο να ονομαστεί το typedef στα κεφαλαία γράμματα. Εδώ είναι τα παραδείγματα του καθορισμού δομών.
typedef struct {
char name[64];
char course[128];
int age;
int year;
} student;
Αυτό καθορίζει μεταβλητές τις νέες τύπων σπουδαστών του σπουδαστή τύπων μπορεί να δηλωθεί ως εξής.
student st_rec;
Ειδοποίηση πόσο παρόμοιο αυτό είναι στη δήλωση ενός INT ή ενός επιπλέοντος σώματος. Το μεταβλητό όνομα είναι st_rec, καλεί τα μέλη το όνομα, τη σειρά μαθημάτων, την ηλικία και έτος. Ομοίως,
typedef struct element
{
char data;
struct element *next;
} STACKELEMENT;
Μια μεταβλητή του καθορισμένου χρήστης στοιχείου τύπων struct μπορεί τώρα να δηλωθεί ως εξής.
STACKELEMENT *stack;
Εξετάστε την ακόλουθη δομή:
struct student
{
char *name;
int grade;
};
Ένας δείκτης στο σπουδαστή struct μπορεί να καθοριστεί ως εξής.
struct student *hnc;
Κατά την πρόσβαση ενός δείκτη σε μια δομή, ο χειριστής δεικτών μελών, - > χρησιμοποιείται αντί του χειριστή σημείων. Για να προσθέσει έναν βαθμό σε μια δομή,
s.grade = 50;
Θα μπορούσατε να ορίσετε έναν βαθμό στη δομή ως εξής.
s->grade = 50;
Όπως με τους βασικούς τύπους στοιχείων, εάν θέλετε τις αλλαγές που γίνονται σε μια λειτουργία στις περασμένες παραμέτρους για να είστε επίμονες, πρέπει να περάσετε από την αναφορά (περάστε τη διεύθυνση). Ο μηχανισμός είναι ακριβώς ο ίδιος με τους βασικούς τύπους στοιχείων. Περάστε τη διεύθυνση, και αναφερθείτε στη μεταβλητή χρησιμοποιώντας τη σημείωση δεικτών.
|