C - 动态分配的变量大小



当我运行这个程序时,输出是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 字节的空间吗?

No;它应该与 printf("%zu", sizeof(int *)); 相同,无论您将什么值分配给b,在您的实现上都是 4,因为b具有类型 int * 而不是 int [10]

相关内容

  • 没有找到相关文章