警告:数组元素超过100个
warning:array elements are more than 100
我有一段代码声明了一个数组。
#define MAX_ELEMENT 150
Struct_arr arr_elem[MAX_ELEMENT];
这里CCD_ 1是一个结构。在编译时,我收到了后面这行的警告:
警告:数组元素超过100
有人能帮我一下吗?
问候,vivG
这几乎可以肯定是代码中#warning
指令的结果。C++本身并没有将您的数组元素限制为99个,这将是出于某种原因引入的人为限制。
我的建议是搜索该消息,看看附近是否有任何评论可以解释为什么这是个问题。类似于:
fgrep 'array has more than' *.c *.cpp *.h *.hpp
in作为类UNIX操作系统将是一个很好的起点。
警告说您正试图在堆栈上分配一个大数组。在典型的linux系统上,堆栈有8Mb,因此很容易达到这个限制(导致segfault)。这就是为什么你有这个警告。
当您将问题标记为C++时,请注意,在C++中使用C样式数组并不常见。你宁愿使用
std::vector<Struct_arr> arr_elem(150);
这分配了一个150个元素的向量,但它可以动态调整大小,所以如果你"以防万一"分配了这么大的数组,那么std::向量就更合适了。
最后,只使用普通的旧常量而不是宏,在这种特殊情况下使用它们真的没有任何好处。
相关文章:
- 数组元素打印的递归方法
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 为什么使用数组元素查找最大数字的程序不起作用?
- 数组元素更改值?
- 如何访问宏中定义的数组元素
- 将数组元素递增 1
- C++函数,它将数组、谓词和运算符作为参数,并将运算符应用于满足谓词的数组元素
- 存储指向动态数组元素的指针
- C++通过别名指针以静默方式将错误的类型分配给数组元素
- 在 std::map 中插入数组元素
- 使用指针访问数组元素时出现意外结果
- 确定数组是否可以旋转 3 个连续的数组元素进行排序?
- 数组:如何在指定索引之前显示数组的第一个和最后一个元素以及数组元素的差异?
- 从 5x10^8 个不同的数组元素读取,每次读取 4 个字节
- 如何提取并检查数组元素中的第一个字符是否为字母
- 在几个顺序数组元素中输入相同的值
- 将两个单词读入一个char数组元素
- 警告:数组元素超过100个
- C++ - 2 个字符数组元素成短 int
- 优化具有两个条件的数组元素的比较;C++抽象机制