size of array has non-integral
时间: 2023-04-23 10:01:01 浏览: 707
这个错误提示是指数组的大小不是整数类型,可能是使用了非整数的表达式或变量来定义数组的大小。
在大多数编程语言中,数组的大小通常是整数类型,因为数组需要在内存中连续分配一段固定大小的空间来存储元素。如果数组大小不是整数类型,就无法确定需要分配多少内存空间,因此会出现这个错误。
要解决这个问题,需要检查代码中定义数组大小的语句,确保使用的是整数类型的表达式或变量。如果需要使用非整数类型来定义数组大小,可以考虑使用动态内存分配等其他方式来分配内存空间。
相关问题
[Error] 'constexpr' needed for in-class initialization of static data member 'const double Circle::pi' of non-integral type
这个错误提示是因为你在定义一个非整型的静态数据成员时,需要用 `constexpr` 来进行类内初始化。
例如,如果你有一个 `Circle` 类,声明了一个静态的 `const double` 类型的 `pi` 常量,可以这样写:
```c++
class Circle {
public:
static constexpr double pi = 3.14159265358979323846;
// ...
};
```
这里使用了 `constexpr` 来进行类内初始化,这样就可以避免上述错误。
error: ‘constexpr’ needed for in-class initialization of static data member ‘ImageSaveInstance* ImageSaveInstance::m_instance’ of non-integral type [-fpermissive]
这个错误信息意味着你在非整数类型的静态数据成员 `ImageSaveInstance::m_instance` 上使用了 in-class 初始化而没有使用 `constexpr` 关键字。要解决这个问题,你需要在类定义中将 `m_instance` 声明为 `constexpr` 或在类外定义中初始化它。例如:
```cpp
class ImageSaveInstance {
public:
static constexpr ImageSaveInstance* m_instance = nullptr;
// ...
};
// 或者在类外初始化
constexpr ImageSaveInstance* ImageSaveInstance::m_instance = nullptr;
```