在c ++(avr-g ++)中调用方法时,是否可以初始化整数数组?
这就是我的尝试:
A({2, 4, 8, 3, 6});
void A(int* b) {
}
我收到了这个错误:
无法将''转换为'int *' 参数'1'到'void A(int *)'不能将参数'1'的''转换为'int *'到'void A(int *)'
答案 0 :(得分:2)
看着我以前的问题,我发现我现在知道答案了。这是:
void A(int *b) {
}
void foo() {
A((int[]){1,2,3});
}
答案 1 :(得分:1)
没有原始指针。但你可以用C ++ 11中的std::vector
来做到这一点:
void A(std::vector<int> b) {
}
A({2, 4, 8, 3, 6}); // b.size() == 5
或者只是一个推断数组大小的函数模板:
template <size_t N>
void A(const int (&b)[N]) {
}