【发布时间】:2015-12-07 00:33:33
【问题描述】:
我认为这是因为 b 指向 a 的第一个元素,因此它具有第一个元素的值。 现在 b 指向第一个元素,我们可以访问 a 数组中的所有值。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *b,*a={0,0,0,0,0},i;
b=(int*)malloc(5*sizeof(int));
b=a;
a = NULL;
for(i=0;i<5;i++)
{
printf("%d",*(b+i));
}
return 0;
}
【问题讨论】:
-
请清理您的演示文稿。
-
编译器告诉你关于你的代码的什么?我猜它会有一些明智的建议。
-
编译器应该因为
a的初始化而对你大喊大叫;该类型的初始化器对指针无效。 -
编译器不会对你大喊大叫,但我会:“内存泄漏在线
b=a;”;-)
标签: c pointers memory-leaks