可能重复:
如何找到的sizeof(一个指针指向数组)
我正在学习如何创造下的动态数组,但所遇到的一个问题,我想不通。
如果我使用的代码:
int num[10];
for (int i = 0; i < 10; i++) {
num[i] = i;
}
printf("sizeof num = %li\n sizeof num[0] = %li", sizeof(num), sizeof(num[0]));
我得到的输出:
sizeof num = 40
sizeof num[0] = 4
这是我所期待的事情发生。 但是,如果我喜欢的malloc数组的大小:
int *num;
num = malloc(10 * sizeof(int));
for (int i = 0; i < 10; i++) {
num[i] = i;
}
printf("sizeof num = %li\n sizeof num[0] = %li", sizeof(num), sizeof(num[0]));
然后我得到的输出:
sizeof num = 8
sizeof num[0] = 4
我想知道为什么该数组的大小为40,当我使用固定长度的方法,但不是当我使用malloc()