什么"错误:获取临时数组的地址"意思?

时间:2017-10-02 07:43:10

标签: c++

当我尝试运行以下

// Example program
#include <iostream>
#include <string>

int* x;

int main()
{
  x = (int[5]) { 16, 2, 77, 40, 12071 };

  std::cout << x;
}

我收到以下消息error: taking address of temporary array

这是什么意思?

1 个答案:

答案 0 :(得分:6)

(int[5]) { 16, 2, 77, 40, 12071 }匿名临时。一旦完成任务,它就会超出范围。

这会留下一个悬空指针x在全局命名空间中没有区别。

改用std::vector;利用初始化列表构建。