【问题标题】:Pass array with all elements zero (C++)传递所有元素为零的数组(C++)
【发布时间】:2012-02-18 17:13:50
【问题描述】:

有一个功能:

void fnc (T arg[]) {

    // inside the function there is something like this:
    // A = B + arg[index] * C;
}

在某些情况下,没有什么可以通过,所以arg[] 应该为零。那么,有没有办法像这样调用函数:void fnc(0);

【问题讨论】:

  • T * arg 在这种情况下会更清楚。
  • 传递所有元素为 0 的数组与传递空数组的引用不同。
  • 那么,你真正想要什么 - 传递所有元素 = 0 的数组还是传递空数组?

标签: c++ arrays argument-passing


【解决方案1】:

在这种情况下,您可以调用函数将 null 值,例如:fnc (NULL);。但请务必在使用前检查函数是否arg == NULL

P.s:最好的办法是使用std::vector 而不是简单的数组。

【讨论】:

  • 您是否将函数参数更改为 T* arg 并且您是否真的在检查大小写 arg==NULL?
  • @Shibli 检查这个:ideone.com/GDUCz,你可以传递 NULL 或 0 ,因为 NULL 是宏定义的 0,你正在使用什么编译器?
  • @Mr.Anubis:我已经检查了链接。编译器是英特尔。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 2012-02-27
  • 2019-07-18
  • 2011-05-26
  • 2014-12-19
  • 2022-01-21
相关资源
最近更新 更多