我只是想在C中动态声明一个数组 代码如下:
*****.********* start *****.*********
打印结果给我:
int maxSize = 3;
int *answer;
answer = malloc(maxSize * sizeof(int));
printf("this is max size: %d\n", maxSize);
printf("this is the mult result: %d\n", maxSize * sizeof(int));
printf("size of answer in bytes: %d\n", sizeof(answer));
printf("size of the answer array: %d\n", sizeof(answer) / sizeof(answer[0]));
我不认为这是一个架构的事情(而不是我没有经验),但我在Macbook Pro上运行它。
我不明白为什么malloc只为整数数组分配8个字节而不是12个字节。
答案 0 :(得分:1)
Sizeof(answer)返回内存中变量answer的大小,与sizeOf(int *)相同。由于您的计算机体系结构是64位,因此指针的大小为8个字节,这是您的结果。你的计算机确实分配了12个字节,但你真的没办法验证它。