问个关于动态分配内存的问题
#include< stdio.h >#include <malloc.h>
int main(void)
{
int a,b,c,*p;
printf("请输入元素的个数\n");
scanf("%d",&a);
p=(int *)malloc(a);
printf("请输入元素\n");
for (b=0;b<a;b++)
scanf("%d ",&p[b]);
for (c=0;c<a;c++)
printf("%d ",p[c]);
}
程序执行后 我输入3 然后要输入元素 但是要输入4个元素才能输出 输出是正确的但是输入的时候为什么要多输入一个元素呢?
比如 它提示请输入元素个数 —》3 请输入元素 -》 3 4 5 它就不会输出 如果改成 3 4 5 6 它就会输出 3 4 5 。。。