gpt4 book ai didi

c - 使用函数表达式作为另一个函数的参数是不好的做法吗?

转载 作者:行者123 更新时间:2023-11-30 18:21:32 25 4
gpt4 key购买 nike

我定义了一个将 GSL vector 转换为数组的函数。该函数返回一个指向数组的指针。

double * vec2array(const gsl_vector * v){
double * out = calloc(v->size,sizeof(double));
for( int i = 0; i < v->size; i++ ){
out[i] = gsl_vector_get(v,i);
}
return out;
}

使用返回值作为另一个函数的参数是不好的做法吗即:

plot(vec2array(x),vec2array(y));

这是内存泄漏吗?

最佳答案

直接使用函数的返回值作为参数本身并没有什么问题。

但是,您对它的特定使用确实会泄漏内存。这很容易看出,因为您永远不会对从 calloc() 获得的内存调用 free()。 (至少,除非您的 plot() 函数调用 free()。)

关于c - 使用函数表达式作为另一个函数的参数是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41657519/

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