Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法转换'&书信电报;括号内的初始值设定项列表>';至';双倍';作为回报 我在C++中写了一个ARDUINO程序,有以下问题:_C++_Arduino - Fatal编程技术网

无法转换'&书信电报;括号内的初始值设定项列表>';至';双倍';作为回报 我在C++中写了一个ARDUINO程序,有以下问题:

无法转换'&书信电报;括号内的初始值设定项列表>';至';双倍';作为回报 我在C++中写了一个ARDUINO程序,有以下问题:,c++,arduino,C++,Arduino,为什么这样做有效 double* getArray() { double p, r, y; double ret[3] = {p, r, y}; return ret; } 但事实并非如此 double* getArray() { double p, r, y; return {p, r, y}; } 两个代码块都不能工作 第一种方法进行编译,但在返回指向不再存在的数组的指针时引入未定义的行为。有关此问题的详细答案,请参见 第二个代码块编译失败,因为{p,r,y}不是

为什么这样做有效

double* getArray() {
  double p, r, y;

  double ret[3] = {p, r, y};
  return ret;
}
但事实并非如此

double* getArray() {
  double p, r, y;

  return {p, r, y};
}

两个代码块都不能工作

第一种方法进行编译,但在返回指向不再存在的数组的指针时引入未定义的行为。有关此问题的详细答案,请参见

第二个代码块编译失败,因为
{p,r,y}
不是
double*
的有效初始值设定项

这里真正需要的是
std::vector
std::array
std::unique\u ptr
。如果您不能使用其中任何一个,那么您需要动态地创建数组,然后您需要记住在不使用该数组时删除该数组

double* getArray() {
    double * arr = new double[3]{1,2,3};
    return arr;
}

int main() {
    double* foo = getArray();
    // use array here
    delete [] foo;
}

两个代码块都不能工作

第一种方法进行编译,但在返回指向不再存在的数组的指针时引入未定义的行为。有关此问题的详细答案,请参见

第二个代码块编译失败,因为
{p,r,y}
不是
double*
的有效初始值设定项

这里真正需要的是
std::vector
std::array
std::unique\u ptr
。如果您不能使用其中任何一个,那么您需要动态地创建数组,然后您需要记住在不使用该数组时删除该数组

double* getArray() {
    double * arr = new double[3]{1,2,3};
    return arr;
}

int main() {
    double* foo = getArray();
    // use array here
    delete [] foo;
}

不相关,但第一个示例是未定义的行为。不相关,但第一个示例是未定义的行为。我认为
delete[]
特定于数组指针,而just
delete
用于其他所有操作?@Jacksonkr:
delete[]
特定于
new[]
,而
delete
是特定于
new
的。我认为
delete[]
是特定于数组指针的,而just
delete
是用于其他一切的?@Jacksonkr:
delete[]
是特定于
new[]
的。