当前位置:  开发笔记 > 编程语言 > 正文

将函数表达式用作另一个函数的参数是不好的做法吗?

如何解决《将函数表达式用作另一个函数的参数是不好的做法吗?》经验,为你挑选了1个好方法。

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

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));

是内存泄漏?



1> Dolda2000..:

将函数的返回值直接用作参数本身并没有错.

但是,您对它的特殊使用确实会泄漏内存.这很容易看到,因为你永远不会打电话给free()你的记忆calloc().(除非你的plot()函数调用free(),至少.)

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有