33,321
社区成员




#include <stdio.h>
void main()
{
double *p;int i;
for(i=0; i<10; i++)
{
scanf("%lf", p[i]); //指针p并未初始化,它指向的位置不明,直接使用p[i]是很危险的动作,有可能造成崩溃
printf("%10lf", p[i]);
}
}
#include <malloc.h>
#include <stdio.h>
void main()
{
double *p = NULL;
int i;
p = (double*)malloc(10*sizeof(double));
if (NULL == p)
{
return;//如果没申请到堆内存,就退出程序
}
for(i=0; i<10; i++) //p现在指向堆中申请到的数据,是安全的
{
scanf("%lf", p[i]);
printf("%10lf", p[i]);
}
free(p);
p = NULL;//使用完后,要释放申请的内在,并将指针置空
}