可能重复:
如何使用sizeof查找变量的大小
使用C,我们可以在不使用sizeof运算符的情况下以某种方式找到指针的大小吗?虽然我在google搜索时在很多地方发现了这个问题,但我找不到任何答案.任何帮助将不胜感激.谢谢
das*_*ght 10
这是一个小但合法的黑客你可以使用:
int *unused = NULL;
int **ptr = &unused;
printf("%tu\n", ((char*)(ptr+1))-(char*)ptr);
Run Code Online (Sandbox Code Playgroud)
下面是它的工作原理:
N指针会增加指向N类型大小的次数; 因此(ptr+1)增加sizeof(int*)了"原始"价值ptrsizeof(char)总是1,所以铸造char*让你减去"原始"值; 结果是sizeof由(ptr+1)操作添加.