void main
{
int a,*b;
a=10;
a=&b;
printf("value of a %d",a);
printf("value of b %d",b);
}
如何在内存中分配指针变量?内存分配是否依赖于数据类型?
答案 0 :(得分:4)
它们的分配方式与(例如)整数相同。他们指出的东西的类型对此没有影响。
答案 1 :(得分:2)
此特定指针在堆栈上分配,因为它是一个自动变量。这与“普通”非指针变量没有什么不同。如果“内存分配”是指分配的 size ,那么是,指针may depend on the pointee type的大小。
您可以找到sizeof
指针的大小。在这种情况下,b
占用sizeof(int *)
个字节,这取决于平台(在现代机器上通常为4或8个字节)。
如果需要,可以在freestore(堆)上分配一个指针:
int **pp = malloc(sizeof(int *)); // allocates space for a single pointer
(注意,顺便说一下,你的示例程序是错误的:a=&b
应该是b=&a
。)
答案 2 :(得分:0)
答案 3 :(得分:-1)
指针本身就是一个指向其他变量的变量。它始终包含它指向的任何地址。由于地址大小相同,所以无论指向什么指针,所有指针都具有相同的大小。