我在想这是因为b指向a的第一个元素,因此它具有第一个元素的值。 现在,当b指向第一个元素时,我们可以访问数组中的所有值。
#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;
}
答案 0 :(得分:1)
你不能初始化int指针&#39; a&#39;这样,它的值就是内存地址而不是int。
您可以使用局部变量&#34; int a [] = {0,0,0,0,0}&#34;如果你不想要分配内存。
使用&#34; b = a&#34;你正在存储一个b的地址,并丢失以前分配的内存,你可以这样做: &#34;对于(i = 0; I&小于5;我++)B [I] = A [1];&#34;