动态分配的可变大小

时间:2016-05-25 20:39:18

标签: c pointers malloc dynamic-memory-allocation

运行此程序时,输出为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个字节,因为我为'b'动态分配40个字节的空间?

1 个答案:

答案 0 :(得分:0)

没有;它应与printf("%zu", sizeof(int *));相同,无论您为b指定的值是什么,在您的实施中都是b,因为int *的类型为int [10],而不是{{1} }}