sizeof Calloc производит неправильный вывод

Я создал объект calloc:

char* i2s_read_buff = (char*) calloc(1024*16, sizeof(char)); 

Из определения calloc я понял, что он создаст массив из 1024 * 16 элементов, и каждый элемент будет иметь 1 байт. Значит, это должен быть массив из 1024*16/8 = 2048 байтов.

Но

sizeof(i2s_read_buff)

производит вывод 4. Я ожидал выхода 2048.

Может кто-нибудь объяснить, что здесь происходит?


person Anudocs    schedule 26.03.2021    source источник
comment
Вы получаете размер char *, который отличается от выделения памяти, выполняемого по указателю   -  person Antonin GAVREL    schedule 26.03.2021
comment
stackoverflow.com/ questions / 1281686 /   -  person Antonin GAVREL    schedule 26.03.2021
comment
@AntoninGAVREL isnt sizeof (char) всегда равен 1?   -  person Anudocs    schedule 26.03.2021
comment
sizeof (char *) отличается от sizeof (char): stackoverflow.com/questions/12353973/sizeof-char-array-in-cc   -  person Antonin GAVREL    schedule 26.03.2021
comment
Я не понимаю /8 часть ваших расчетов. Кажется, вы думаете, что размер char составляет одну восьмую байта.   -  person Yunnosch    schedule 26.03.2021