Φοίνικας του Νείλου Δημοσ. 21 Αυγούστου 2018 Δημοσ. 21 Αυγούστου 2018 (επεξεργασμένο) #include <stdio.h> /* #include another file for malloc() and */ /* strlen() ???. Check the compiler manual! */ #define NOOFSTR 10 #define BUFSIZE 255 #define CODE 0 main () { char *array[NOOFSTR], *malloc(); char buffer[BUFSIZE]; int i; for (i = 0; i < NOOFSTR; i++) { printf ("Enter string %d :",i); scanf ("%255s",buffer); array = malloc(strlen(buffer)+1); if (array == NULL) { printf ("Can’t allocate memory\n"); QuitSafely (array); } strcpy (array,buffer); } for (i = 0; i < NOOFSTR; i++) { printf ("%s\n",array); } QuitSafely(array); } Είναι παράδειγμα σε ένα βιβλίο που διαβάζω για την c η ερώτηση είναι το buffer είναι array ή variable αν και ξέρω ότι η c δεν έχει array χρησιμοποιεί τους δείκτες γιαυτό βασικό το βλέπω να δηλώνεται σαν array και το χρησιμοποιεί σαν μεταβλητή Επεξ/σία 21 Αυγούστου 2018 από Φοίνικας του Νείλου
Ilias95 Δημοσ. 21 Αυγούστου 2018 Δημοσ. 21 Αυγούστου 2018 (επεξεργασμένο) Το buffer είναι array. Η C έχει arrays και οι δείκτες δεν είναι arrays. Περισσότερα σχετικά με το τελευταίο γράφτηκαν σε αυτό το θέμα: https://www.insomnia.gr/forums/topic/640136-c-συνάρτιση-και-κλήση-από-main/ Edit: Αν εννοείς το πέρασμα σαν παράμετρος στις συναρτήσεις, τότε σε αυτή την περίπτωση αυτό που περνιέται είναι ένας pointer στο πρώτο στοιχείο του array. Επεξ/σία 21 Αυγούστου 2018 από Ilias95 1
marxoulis Δημοσ. 23 Αυγούστου 2018 Δημοσ. 23 Αυγούστου 2018 Το function είναι λάθος και δεν δουλεύει. Η array είναι array από pointers και κάθε αναφορά σε αυτήν μέσα στα loops πρέπει να αντικατασταθεί με array(i).
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα