我定义了一个函数:
{
double *tp=(double *)malloc(10);
return tp;
}
void main()
{
double *tp1,*tp2;
tp1=init();
tp2=init();
}
上面中两次分配的内存会出现重复?
[此贴子已经被作者于2006-6-29 16:14:15编辑过]
但下面这个程序就不能正常执行:
[CODE]#include <stdio.h>
#include <stdlib.h>
double *init()
{
double *tp=(double *)malloc(5);
return tp;
}
void main()
{
double *tp1,*tp2;
int i;
tp1=init();
for(i=0;i<5;i++)
*(tp1+i)=i;
tp2=init();
for(i=5;i>=0;i++)
*(tp2+i)=i;
for(i=0;i<5;i++)
printf("%lf ",*(tp1+i));
printf("\n");
for(i=0;i<5;i++)
printf("%lf ",*(tp2+i));
}[/CODE]
[QUOTE]#include <stdio.h>
#include <stdlib.h>
double *init( double * tp)
{
tp=(double *)malloc(5);
return tp;
}
void main()
{
double *tp1,*tp2;
int i;
tp1=init(tp1);
for(i=0;i<5;i++)
*(tp1+i)=i;
tp2=init(tp2);
for(i=5;i>=0;i++)
*(tp2+i)=i;
for(i=0;i<5;i++)
printf("%lf ",*(tp1+i));
printf("\n");
for(i=0;i<5;i++)
printf("%lf ",*(tp2+i));
}[/QUOTE]
我没测试.应该可以.原因正如6楼所说