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

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

Δημοσ. (επεξεργασμένο)

#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 και το χρησιμοποιεί σαν μεταβλητή 

Επεξ/σία από Φοίνικας του Νείλου
Δημοσ. (επεξεργασμένο)

Το buffer είναι array. Η C έχει arrays και οι δείκτες δεν είναι arrays.
Περισσότερα σχετικά με το τελευταίο γράφτηκαν σε αυτό το θέμα: https://www.insomnia.gr/forums/topic/640136-c-συνάρτιση-και-κλήση-από-main/

Edit: Αν εννοείς το πέρασμα σαν παράμετρος στις συναρτήσεις, τότε σε αυτή την περίπτωση αυτό που περνιέται είναι ένας pointer στο πρώτο στοιχείο του array. 

Επεξ/σία από Ilias95
  • Thanks 1
Δημοσ.

Το function είναι λάθος και δεν δουλεύει. Η array είναι array από pointers και κάθε αναφορά σε αυτήν μέσα στα loops πρέπει να αντικατασταθεί με array(i).

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...