警告:数组元素大于100

问题描述

| 我有一段代码声明一个数组。
#define MAX_ELEMENT 150
Struct_arr  arr_elem[MAX_ELEMENT];
Struct_arr
一个结构。在编译时,我收到以下行的警告: 警告:数组元素超过100个 有人可以帮我这个忙吗? 问候, 病毒     

解决方法

        这几乎可以肯定是代码中某处的“ 2”指令的结果。 C ++本身不将您限制为99个数组元素,出于某些原因,这将是人为限制。 我的建议是搜索该消息,并查看附近是否有任何注释来解释这是问题的原因。就像是:
fgrep \'array has more than\' *.c *.cpp *.h *.hpp
作为类似UNIX的操作系统,这将是一个很好的起点。     ,        警告说明您正在尝试在堆栈上分配一个大数组。在典型的linux系统上,堆栈具有8Mb,因此很容易达到该限制(导致段错误)。这就是为什么您有此警告。 当您将问题标记为C ++时,请注意,在C ++中使用C样式数组并不是很常见。您宁愿使用
std::vector<Struct_arr> arr_elem(150);
这分配了一个由150个元素组成的向量,但是可以动态调整其大小,因此,如果您分配了一个大数组“以防万一”,则std :: vector甚至是更多的选择。 最后,只使用普通的旧常量而不是宏,在这种特殊情况下使用它们实在没有任何好处。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...