Каква е разликата между постоянен указател и име на масив в C?


Отговор 1:
int arr [10] = {0,1,2,3,4,5,6,7,8,9};

// нека да намерим размера на масива -
printf ("Размер:% d \ n", sizeof (arr)); // това отпечатва 40; ако се приеме, че размерът на int е 4

// Позволете ми сега да създам постоянен указател
int * const ptr = arr; // трябва да се инициализира по време на деклариране

printf ("Размер:% d \ n", sizeof (ptr)); // този отпечатък 4; ако се приеме, че размерът на int е 4
struct DynamicBuffer {
    int дължина;
    char buf [];
};
struct DynamicBuffer * db = (struct DynamicBuffer *) malloc (sizeof (struct DynamicBuffer) + some_length);