找到指针的大小

oad*_*ams 2 c

printf("pointer: %d\n", sizeof(*void));
Run Code Online (Sandbox Code Playgroud)

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

shu*_*e87 9

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

printf("pointer: %zu\n", sizeof(void*));
Run Code Online (Sandbox Code Playgroud)

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

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


Mar*_*tos 6

printf("pointer: %d\n", sizeof(void*));
Run Code Online (Sandbox Code Playgroud)