0
Когда я запускаю эту программу, вывод составляет 4 байта. (Я использую 64 битный компилятор)динамически распределенный переменный размер
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *b;
b=(int*)malloc(10*sizeof(int));
printf("%d",sizeof(b));
return 0;
}
Но не должно быть на выходе 40 байт, как я динамически выделять 40 байт пространства для «B»?
** Указатель не является массивом **. – haccks
Указатель не является массивом. Я понял. Но есть ли способ, которым я могу знать, сколько байтов выделено для b? –
Он печатает размер самого указателя. (Что составляет 4 байта, 32 бит. Вы уверены, что в 64-битном компиляторе?) Нет способа (переносного и стандартного) для получения размера блока, выделенного кучей, после его распределения. – HolyBlackCat