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

Α19.10 · Δομές και δείκτες

Εργαστήριο 9, Άσκηση 2 · Δυσκολία ★★☆ · programming · Κεφάλαια: 19, 13, 14

2.1 Δημιουργήστε το αρχείο person.c και ορίστε τη δομή person που αποθηκεύει το όνομα, το επώνυμο και το πατρώνυμο ενός ατόμου.

struct person {
    char *fname;
    char *lname;
    char *mname;
};

2.2 Κατασκευάστε τη συνάρτηση:

struct person *person_init(char *firstname, char *lastname, char *middlename);

Η συνάρτηση θα δεσμεύει χώρο για μία δομή τύπου person, θα την αρχικοποιεί και θα επιστρέφει τη διεύθυνσή της. Καλέστε τη συνάρτηση από την main για να καταχωρίσετε τα στοιχεία του πατέρα σας.

2.3 Ορίστε τη συνάρτηση:

struct person *childof(struct person father, char *newname);

Η συνάρτηση θα καταχωρεί τα στοιχεία ενός παιδιού με μικρό όνομα newname, χρησιμοποιώντας τον πατέρα του father. Καλέστε τη συνάρτηση από την main για να καταχωρίσετε τα στοιχεία σας.

Υπόδειξη

Τα πεδία είναι δείκτες: αποφασίστε αν θα αντιγράψετε τα ονόματα σε δική τους δυναμική μνήμη (malloc με strlen + 1 και strcpy) ή αν απλώς θα κρατήσετε τους δείκτες που σας δόθηκαν, και σκεφτείτε τι γίνεται στη δεύτερη περίπτωση αν αλλάξει ο αρχικός πίνακας. Στην childof, ποιο όνομα του πατέρα γίνεται πατρώνυμο του παιδιού και ποιο κρατιέται ως επώνυμο;

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