C语言为数组动态分配内存并赋值,为什么第一种方法正确,第二种方法错误?
#include<stdio.h>#include<stdlib.h>voidmain(){inti,n,*a;scanf("%d",&n);a=(int*)malloc...
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i,n,*a;
scanf("%d",&n);
a=(int *)malloc(n*sizeof(int)); //这种方法正确
for(i=0;i<n;i++)
a[i]=i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i,n,*a;
scanf("%d",&n);
for(i=0;i<n;i++)
{
a=(int *)malloc(sizeof(int)); //这种方法错误
a[i]=i;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
} 展开
#include<stdlib.h>
void main()
{
int i,n,*a;
scanf("%d",&n);
a=(int *)malloc(n*sizeof(int)); //这种方法正确
for(i=0;i<n;i++)
a[i]=i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i,n,*a;
scanf("%d",&n);
for(i=0;i<n;i++)
{
a=(int *)malloc(sizeof(int)); //这种方法错误
a[i]=i;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
} 展开
6个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询