printf("pointer: %d\n", sizeof(*void));
由于*,此行会导致语法错误。我该怎么办才能让它发挥作用?
答案 0 :(得分:9)
您目前正在尝试找出地址无效的大小。如果您希望找到void指针的大小,请尝试:sizeof(void *)。
printf("pointer: %zu\n", sizeof(void*));
应该做你想做的事。使用%zu而不是%d,因为指针是无符号值而不是小数。
编辑:我第一次想到的其他东西是%zu编译器依赖吗?我们需要在32位或64位架构上做不同的事情吗?
答案 1 :(得分:6)
printf("pointer: %d\n", sizeof(void*));