-11

我有这段代码给指针一个地址并打印它,但为什么这不起作用?

void main()
{
int *b = (int*) 32;
printf("%d\n",b[0]);
}
4

2 回答 2

4

b[0]取消引用指向您尚未分配的内存的数组。这样做的影响是不确定的。32如果您的进程无法读取地址,您可能会返回一个值,或者您的程序可能会崩溃。

于 2013-07-14T11:00:06.423 回答
0
int *b = (int*) 32;

上面的代码将内存地址 32 分配给这个指针,我不认为这是你想要的,当你调用 printf 时你会得到访问被拒绝的错误,希望下面的代码对你有用

int a = 32;
int *b = &a;
printf("%d\n",b[0]);
//output 32

printf( "%d\n", &b);
// output b pointer address.
于 2013-07-14T11:06:19.113 回答