Vkt678 Δημοσ. 23 Ιανουαρίου 2015 Δημοσ. 23 Ιανουαρίου 2015 Καλησπέρα.Έχω φτιάξει ένα πρόγραμμα το οποίο δεσμεύει μνήμη για ένα πίνακα και διαβάζοντας επαναληπτικά χαρακτήρες με τη getchar,γεμίζω τον πίνακα με χαρακτήρες.Βέβαια καλώ τη realloc σε περίπτωση που δεν επαρκεί η μνήμη που δέσμευσα αρχικά.Στη συνέχεια καλώ μια συνάρτηση με πρώτο όρισμα τον pointer του πίνακα (έστω p) και κάποια άλλα ορίσματα όπως το συνολικό άθροισμα των στοιχείων του πίνακα.Επίσης έχω και ένα αρχείο .h (έστω lib.h) στο οποίο έχω το πρωτότυπο της συνάρτησης καθώς και ένα ξεχωριστό αρχείο .c (έστω fun.c) στο οποίο η συνάρτηση εκτελεί ορισμένες λειτουργίες πάνω στον πίνακα.Η ερώτηση είναι η εξής:Στο αρχείο fun.c,η συνάρτηση σαν πρώτο όρισμα θα έχει *p ή &p ?Επίσης στην main,όταν καλώ την συνάρτηση το πρώτο όρισμα θα περιέχει απλά τον pointer πχ. fyn( p,sum);Κάνω αυτές τις ερωτήσεις διότι με το DEV C++ όταν κάνω compile το αρχείο fun.c που περιέχει τη συνάρτηση μου βγάζει μήνυμα " undefined reference to `WinMain' " ενώ όταν κάνω compile το αρχείο με τη main μου βγάζει μήνυμα " undefined reference to `fyn' ".Ευχαριστώ εκ των προτέρων.
imitheos Δημοσ. 23 Ιανουαρίου 2015 Δημοσ. 23 Ιανουαρίου 2015 Καλησπέρα.Έχω φτιάξει ένα πρόγραμμα το οποίο δεσμεύει μνήμη για ένα πίνακα και διαβάζοντας επαναληπτικά χαρακτήρες με τη getchar,γεμίζω τον πίνακα με χαρακτήρες.Βέβαια καλώ τη realloc σε περίπτωση που δεν επαρκεί η μνήμη που δέσμευσα αρχικά.Στη συνέχεια καλώ μια συνάρτηση με πρώτο όρισμα τον pointer του πίνακα (έστω p) και κάποια άλλα ορίσματα όπως το συνολικό άθροισμα των στοιχείων του πίνακα.Επίσης έχω και ένα αρχείο .h (έστω lib.h) στο οποίο έχω το πρωτότυπο της συνάρτησης καθώς και ένα ξεχωριστό αρχείο .c (έστω fun.c) στο οποίο η συνάρτηση εκτελεί ορισμένες λειτουργίες πάνω στον πίνακα.Η ερώτηση είναι η εξής:Στο αρχείο fun.c,η συνάρτηση σαν πρώτο όρισμα θα έχει *p ή &p ?Επίσης στην main,όταν καλώ την συνάρτηση το πρώτο όρισμα θα περιέχει απλά τον pointer πχ. fyn( p,sum);Κάνω αυτές τις ερωτήσεις διότι με το DEV C++ όταν κάνω compile το αρχείο fun.c που περιέχει τη συνάρτηση μου βγάζει μήνυμα " undefined reference to `WinMain' " ενώ όταν κάνω compile το αρχείο με τη main μου βγάζει μήνυμα " undefined reference to `fyn' ".Ευχαριστώ εκ των προτέρων. Γράφοντας έτσι ένα ολόκληρο κατεβατό μαζεμένο και χωρίς κώδικα είναι δύσκολο να σε βοηθήσει κάποιος. Γράψε τον κώδικα σε code tags ή αν ο κώδικας έχει πολλά αρχεία, δώσε τον σε ένα zip/tar ή ανέβασε τον στο github ή ό,τι άλλο θέλεις ώστε να δούμε τι ρωτάς. Επίσης να ενεργοποιείς πάντα τα μηνύματα του compiler (με -Wall). Στο θέμα αν πρέπει να βάλεις *p ή &p σίγουρα ο compiler θα σου πει ότι έχεις λάθος δήλωση αν δεν το έχεις γράψει σωστά.
Haris San Δημοσ. 23 Ιανουαρίου 2015 Δημοσ. 23 Ιανουαρίου 2015 Καλησπέρα.Έχω φτιάξει ένα πρόγραμμα το οποίο δεσμεύει μνήμη για ένα πίνακα και διαβάζοντας επαναληπτικά χαρακτήρες με τη getchar,γεμίζω τον πίνακα με χαρακτήρες.Βέβαια καλώ τη realloc σε περίπτωση που δεν επαρκεί η μνήμη που δέσμευσα αρχικά.Στη συνέχεια καλώ μια συνάρτηση με πρώτο όρισμα τον pointer του πίνακα (έστω p) και κάποια άλλα ορίσματα όπως το συνολικό άθροισμα των στοιχείων του πίνακα.Επίσης έχω και ένα αρχείο .h (έστω lib.h) στο οποίο έχω το πρωτότυπο της συνάρτησης καθώς και ένα ξεχωριστό αρχείο .c (έστω fun.c) στο οποίο η συνάρτηση εκτελεί ορισμένες λειτουργίες πάνω στον πίνακα.Η ερώτηση είναι η εξής:Στο αρχείο fun.c,η συνάρτηση σαν πρώτο όρισμα θα έχει *p ή &p ?Επίσης στην main,όταν καλώ την συνάρτηση το πρώτο όρισμα θα περιέχει απλά τον pointer πχ. fyn( p,sum);Κάνω αυτές τις ερωτήσεις διότι με το DEV C++ όταν κάνω compile το αρχείο fun.c που περιέχει τη συνάρτηση μου βγάζει μήνυμα " undefined reference to `WinMain' " ενώ όταν κάνω compile το αρχείο με τη main μου βγάζει μήνυμα " undefined reference to `fyn' ".Ευχαριστώ εκ των προτέρων. Eκει που δηλωνεις την συναρτηση και την υλοποιεις (.h και .c) θα εχει char *p και οταν κανεις την κληση απο την main η καπου αλλου θα εχει function(p, sum, etc)
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα