Προς το περιεχόμενο

C ->συναρτήσεις


maniac89

Προτεινόμενες αναρτήσεις

Δημοσ.

μπορεί να δώσει κάποιος παράδειγμα πως μπορώ να περάσω σε μια συνάρτηση σαν όρισμα έναν πίνακα να αλλάξω τα στοιχεια του πίνακα και να επιστρέψω ολόκληρο τον πίνακα;

δηλαδή το όλο πρόβλημα είναι πώς επιστρέφει μια συνάρτηση έναν ολόκληρο πίνακα...

προκαταβολικά thanks!!!

Δημοσ.

θα στείλεις το όνομα του πίνακα, και το μέγεθος του σε ΔΕΙΚΤΕΣ πχ και στην συνάρτηση θα τα λάβεις με & και θα τα πειράξεις όσο θέλεις. !!

Δημοσ.

Έχει στάνταρ μέγεθος ο πίνακας ή καθορίζεται δυναμικά το μέγεθός του ;

Αν έχει στάνταρ μέγεθος (π.χ. Χ[10]), τότε απλά τον δίνεις ως όρισμα στη συνάρτηση.

Αν έχει δυναμικό (π.χ. *X), τότε θα πρέπει να περάσεις τον δείκτη και τη διάσταση του πίνακα.

Δημοσ.
Έχει στάνταρ μέγεθος ο πίνακας ή καθορίζεται δυναμικά το μέγεθός του ;

Αν έχει στάνταρ μέγεθος (π.χ. Χ[10]), τότε απλά τον δίνεις ως όρισμα στη συνάρτηση.

Αν έχει δυναμικό (π.χ. *X), τότε θα πρέπει να περάσεις τον δείκτη και τη διάσταση του πίνακα.

 

Σε κάθε περίπτωση (είτε είναι dynamic allocated είτε έχει standard μέγεθος) θα πρέπει εκτός από το όνομα του πίνακα (που είναι ένας δείκτης στο πρώτο στοιχείο του πίνακα) να περάσει στην συνάρτηση και το μέγεθος του πίνακα.

 

Μια συνάρτηση με το παρακάτω ANSI prototype:

 

>
void sum_array(const int x[10], int n);

 

είναι ακριβώς το ίδιο με τα παρακάτω prototypes:

 

>
void sum_array(const int x[], int n);
void sum_array(const int *x, int n);

 

οπότε πάντα πρέπει να περάσει στη συνάρτηση το μέγεθος του πίνακα.

 

Ένας άλλος τρόπος είναι με την χρήση δείκτη σε πίνακα (πχ. 10 στοιχείων) και όχι στο πρώτο στοιχείο του πίνακα. Για παράδειγμα:

 

>
void sum_array(const int (*x)[10]);

 

Σε αυτήν την περίπτωση δεν χρειάζεται να περάσουμε το μέγεθος του πίνακα.

 

ΠΡΟΣΟΧΗ: Σε συνάρτηση που έχει το prototype του τελευταίου παραδείγματος μπορούμε να περάσουμε μόνο πίνακες 10 στοιχείων

 

Ελπίζω να βοήθησα,

Good luck

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...