[Error] could not convert '{1, 2, 3, 4, 5}' from '<brace-enclosed initializer list>' to 'int*'
时间: 2024-09-11 21:14:18 浏览: 229
brace-mod-oauth:适用于Brace Core应用程序的OAuth中间件
错误消息 "could not convert '{1, 2, 3, 4, 5}' from '<brace-enclosed initializer list>' to 'int*'" 意味着你在尝试将一个包含整数的花括号初始化列表转换成 C 或 C++ 中的指向整数的指针 (int*),这种转换是不允许的。
在C或C++中,`{1, 2, 3, 4, 5}` 是一种创建数组或集合的语法,它直接初始化了一个整型数组或std::vector。然而,当你试图将其赋值给一个指针变量时,由于指针通常用于存储地址,而不是实际的数据,所以编译器无法执行这个操作。
正确的做法可能是:
1. 创建一个整型数组:
```c++
int arr[] = {1, 2, 3, 4, 5};
```
或者
```c++
std::vector<int> vec = {1, 2, 3, 4, 5};
```
2. 如果确实需要一个指向数组的指针,你需要明确地分配内存:
```c++
int size = sizeof(arr) / sizeof(arr[0]);
int* ptr = arr; // 对于数组
// 或者
std::vector<int>::iterator it = vec.begin();
int* ptr = &(*it); // 对于动态大小容器
```
阅读全文