输出将k
的值显示为0.000
,但它应包含从funcTest()
返回的实际值。如何从函数返回浮点数组?
#include <stdio.h>
#include <stdlib.h>
float *funcTest(int *a, int size)
{
float p[size];
int i;
for(i=0; i< size; i++){
p[i] = *a;
p[i]=p[i]/2;
a++;
}
for(i =0; i<size; i++){
printf("%f\n",p[i]);
}
return (float *)p;
}
int main()
{
int a[4] = {1,5,3,7};
int size = 4;
int i,j;
float *k;
k = funcTest(&a[0],size);
for(i =0; i<size; i++){
printf("%f\n",*k);
k++;
}
return 0;
}
OUTPUT:
0.5
2.5
1.5
3.5
1.5
0.000
0.000
0.000
p一旦离开方法“functest”就会被销毁。因此,您收到的指针根本无效。 – Taredon