Ποια είναι η διαφορά μεταξύ ενός σταθερού δείκτη και ενός ονόματος πίνακα στο C;


Απάντηση 1:
int arr [10] = {0,1,2,3,4,5,6,7,8,9};

// ας βρούμε το μέγεθος του πίνακα -
printf ("Μέγεθος:% d \ n", μέγεθοςof (arr)); // αυτό εκτυπώνει 40? υποθέτοντας ότι το μέγεθος του int είναι 4

// επιτρέψτε μου να δημιουργήσω έναν σταθερό δείκτη τώρα
int * const ptr = arr; // πρέπει να αρχικοποιηθεί κατά τη διάρκεια της δήλωσης

printf ("Μέγεθος:% d \ n", sizeof (ptr)); // αυτό εκτυπώνει 4; υποθέτοντας ότι το μέγεθος του int είναι 4
struct DynamicBuffer {
    int μήκος;
    char buf [];
},
Δομή DynamicBuffer * db = (struct DynamicBuffer *) malloc (μέγεθοςof (struct DynamicBuffer) + some_length);