【发布时间】:2019-04-18 02:13:59
【问题描述】:
我正在尝试初始化一个动态数组并将其传递给一个函数,但每次我这样做时都会出错。
float addLayer(float layers[]){
float addColor = 0;
if (std::find(std::begin(layers), std::end(layers), addColor)){
// run code
addColor = ...;
}
return addColor
}
float layers[] = {0};
newColor = addLayer(layers[]); //line 2
我收到错误:
Expected identifier or '(' on line 2
任何帮助将不胜感激,谢谢
【问题讨论】:
-
C++ 没有动态数组。请改用向量。此外,您不需要为作为函数参数传递的数组包含括号。
-
std::array和std::vector在某些情况下不起作用。要处理std::array,您必须有一个模板函数。带有重复代码的模板会膨胀二进制文件。即如果您传递 2 和 3 的数组,您将在二进制文件中有两个实例化。如果你使用vector,你必须通过const&传递它。指向指针的指针.. 不..std::span(C++20) 会有所帮助。从我的角度来看,使用 unsized 数组作为参数参数是完全有意义的。与指针的不同之处在于,您以这种方式告诉调用者您不期望 NULL 指针(但是仍然可以传递 NULL)。
标签: c++ function dynamic-arrays