我知道我必须在函数的开头定义它应该返回什么类型,但我不知道如何用指针来做它...我尝试用int *这样做但它不工作
int *sorting(int Num_Gaag, FILE *f) {
typedef struct {
int x;
int y;
int size;
float power;
} gaag;
gaag *arrgaags;
int i = 0, j;
int counter = 0;
arrgaags = malloc(sizeof(gaag) * Num_Gaag);
fseek(f, 67, SEEK_SET);
for (i = 0; i < Num_Gaag; i++)
fscanf_s(f, "(%d,%d) \t%d\t%f\n", &arrgaags[i].x, &arrgaags[i].y,
&arrgaags[i].size, &arrgaags[i].power);
return *arrgaags;
}
谢谢你!
答案 0 :(得分:2)
您需要在函数外部声明结构,然后您可以返回gaag*
。
typedef struct {
int x;
int y;
int size;
float power;
} gaag;
gaag *sorting(int Num_Gaag, FILE *f) {
gaag *arrgaags;
int i = 0, j;
int counter = 0;
arrgaags = malloc(sizeof(gaag) * Num_Gaag);
fseek(f, 67, SEEK_SET);
for (i = 0; i < Num_Gaag; i++)
fscanf_s(f, "(%d,%d) \t%d\t%f\n", &arrgaags[i].x, &arrgaags[i].y,
&arrgaags[i].size, &arrgaags[i].power);
return arrgaags;
}
请注意,在返回指针时不要使用*
,因为这只会返回指针指向的结构(数组的第一个元素)。