当我“打印”(狗)的大小
char dog[1000];// i get size of 1000
char *dog = (char*)malloc(1000 * sizeof(char));// i get size of 8 ? why?
THX
答案 0 :(得分:4)
第一个变量的类型为char[1000]
,这是一个包含1000个字符的数组。
第二个变量的类型为char *
,它是一个指针。在你的系统上,似乎指针的大小为8(可能是因为你有64位指针)。
答案 1 :(得分:1)
因为char *dog
只是一个指针,而char dog[1000]
是一个字符数组。
需要注意的重点是sizeof
dog[1000]
在编译时已知,而动态数组(char *dog
)未知。