gpt4 book ai didi

c - 如何返回一个指针数组?

转载 作者:行者123 更新时间:2023-11-30 17:13:29 26 4
gpt4 key购买 nike

我刚刚编写了这段代码来计算数字数组的方差和平均值,但我找不到返回指针数组的方法。

这是我的功能:

float* statistics(int numbers[], int numbers_len, float * ptr_mean,
float * ptr_variance, float * ptr_stdev, int * ptr_median){

float*mean; float*variance; float stat[4]; float*array_stat;
int i=0;

mean=calculate_mean(numbers, numbers_len);
variance=calculate_variance(numbers, numbers_len, mean);
stat[0]=*mean;
free(mean);
mean=NULL;

stat[1]=*variance;
free(variance);
variance=NULL;

for(i=0;i<2;i++){
array_stat=(float*)calloc(2, sizeof(float));
array_stat[i]=stat[i];
}

return array_stat;
}

我需要array_stat作为指针数组。在 int main() 中,我这样调用函数 *statistics():

int main(){
int array_numbers[MAX_ITEMS];
int n_numbers, i=0;
float *calculate_statistics;

calculate_statistics = statistics(array_numbers, n_numbers, ptr_mean,
ptr_variance, ptr_stdev, ptr_median);
for(i=0;i<2;i++){
printf("\n[%d] ITEM > %0.2f\n", i+1, *calculate_statistics);
}
free(calculate_statistics);
calculate_statistics=NULL;
}

有人可以帮助我吗?

最佳答案

在统计中()

array_stat=(float*)calloc(2, sizeof(float));
for(i=0;i<2;i++){
array_stat[i]=stat[i];
}

在main()中

for(i=0;i<2;i++){
printf("\n[%d] ITEM > %0.2f\n", i+1, calculate_statistics[i]);
}

你只想要一个由两个 float 组成的数组吗?使用结构可能会更好。

关于c - 如何返回一个指针数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30827922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com