在C中获取指针的大小
如何使用sizeof
在C中获取指针的sizeof
? 我想malloc一些内存来存储指针(而不是指向的值)。
给定一个任意类型(我在这里选择了char
,但这是为了具体的例子):
char *p;
您可以使用以下任一表达式:
sizeof(p) sizeof(char *)
导致malloc()
调用,例如:
char **ppc = malloc(sizeof(char *)); char **ppc = malloc(sizeof(p)); char **ppc = malloc(sizeof(*ppc));
最后一个版本有一些好处,如果ppc
的类型改变,表达式仍然分配正确的空间。
这应该是诀窍:
sizeof(void*)
char *ptr; char **ptr2 = malloc(sizeof(ptr));
应该能够达到你的目的。 无论平台是什么,这段代码都应该有效。