Jaký je rozdíl mezi konstantním ukazatelem a názvem pole v C?


Odpověď 1:
int arr [10] = {0,1,2,3,4,5,6,7,8,9};

// pojďme najít velikost pole -
printf ("Velikost:% d \ n", velikost (arr)); // toto vytiskne 40; za předpokladu, že velikost int je 4

// dovolte mi nyní vytvořit konstantní ukazatel
int * const ptr = arr; // musí být inicializováno během deklarace

printf ("Velikost:% d \ n", velikost (ptr)); // toto vytiskne 4; za předpokladu, že velikost int je 4
struct DynamicBuffer {
    int délka;
    char buf [];
};
struct DynamicBuffer * db = (struct DynamicBuffer *) malloc (sizeof (struct DynamicBuffer) + some_length);