找到指针的大小

时间:2010-04-29 10:28:35

标签: c

printf("pointer: %d\n", sizeof(*void));

由于*,此行会导致语法错误。我该怎么办才能让它发挥作用?

2 个答案:

答案 0 :(得分:9)

您目前正在尝试找出地址无效的大小。如果您希望找到void指针的大小,请尝试:sizeof(void *)。

printf("pointer: %zu\n", sizeof(void*));

应该做你想做的事。使用%zu而不是%d,因为指针是无符号值而不是小数。

编辑:我第一次想到的其他东西是%zu编译器依赖吗?我们需要在32位或64位架构上做不同的事情吗?

答案 1 :(得分:6)

printf("pointer: %d\n", sizeof(void*));