【发布时间】:2014-04-20 19:53:27
【问题描述】:
我想声明一个存储在指针 A 中的数组。我有以下代码。
int length = 8;
int *A;
A = (int*) malloc(length*sizeof(int));
A = {5, 1, 3, 5, 5, 2, 9, 8};
但是,数组不能像上面那样初始化。错误显示“无法在赋值中转换为 'int'”。我该如何解决这个问题?
另外,在 c++ 中声明数组(用于指针)时是否需要 malloc 和 memset?
谢谢!
【问题讨论】:
-
使用
std::vector会更好。std::vector<int> A{5, 1, ..., 8}; -
@chris 您建议的实现 std::vector
A{...} 似乎编译不正确。错误是“扩展初始化列表仅适用于.....” -
使用 -std=c++11 对吧?是的,它是 C++11 的一个特性。
-
为什么在问题标记为 c++ 时使用 malloc ?你应该使用新的甚至更好的 std::vector