我正在尝试设置一个指针函数,该函数返回一个数组的第一个元素的地址,该数组本身存储在本地,然后在另一个函数上使用(在本例中为打印)内容。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <stdbool.h>
double *n(int a)
{
int i;
double array[' '];
for(i=0;i<a;i++)
{
array[i] = rand();
printf("\n element: %f \t\n\n", array[i]);
}
return array;
}
void exe()
{
double *unfixed;
int c, b, j;
scanf("%d", &b);
unfixed = n(b);
printf("\n\n Precoded acces value %f \n\n", *(unfixed + c));
for(j=0;j<b;j++)
{
printf("\n %f", *(unfixed + j));
}
return;
}
int main()
{
exe();
return 0;
}
当我通过静态语句引用它时,它可以正常工作,例如:
printf("\n\n %f \n\n", *(unfixed + c));
相反,当我继续尝试获得一个循环或做出决定时,它只是直截了当是行不通的。
PD:也出于某些邪恶的原因,它与 int 类型指针函数完美配合。