C++ 基本语法数组声明

C++ 基本语法数组声明,c++,C++,如果我在声明新数组时使用int作为数组大小,lint会抱怨。解决此问题的正确方法是什么: 我可以将int静态转换为unsigned,但这看起来有点奇怪 在不改变数组的使用和需要整数作为大小的情况下,解决这个问题的最佳方法是什么 MapItemPtr* pMapItems = new MapItemPtr[ (unsigned int)iRecordCount ]; 可以做: MapItemPtr* pMapItems = new MapItemPtr[static_cast<unsign

如果我在声明新数组时使用int作为数组大小,lint会抱怨。解决此问题的正确方法是什么:

我可以将int静态转换为unsigned,但这看起来有点奇怪

在不改变数组的使用和需要整数作为大小的情况下,解决这个问题的最佳方法是什么

MapItemPtr* pMapItems = new MapItemPtr[ (unsigned int)iRecordCount ];
可以做:

MapItemPtr* pMapItems = new MapItemPtr[static_cast<unsigned int>( iRecordCount )];
mapitestr*pMapItems=新的mapitestr[static_cast(iRecordCount)];
这是解决lint错误的正确方法吗: 第3811行错误737:从int到unsigned int的登录升级丢失


或者有更优雅的方法吗?

既然
iRecordCount
显然是用来保存一个非负整数,为什么不首先将它声明为
无符号int

错误不是变量的常量,正如lint所说:

 : Line 3811 Error 737: Loss of sign in promotion from int to unsigned int.
您有几个选择:

1-
static\u cast
int
无符号int

2 -<代码>(未签名int *)< /C> C样式的CAST,但在C++代码中应该避免。 3-创建一个临时
无符号int
变量,该变量将为您创建向量


因为您刚刚创建了一个数组,所以变量的类型可以是
size\u t
,在
cstdef
中声明

你提交7个问题,不发表投票,不接受回答。你目前没有为这个社区做出贡献。哇,我不知道。当有人回答了我的问题时,我总是用感谢的口信来回答。我没有意识到我可以做这些事情。我将返回我的帖子并进行更正。是的,你应该总是向上投票你喜欢的,并接受最能解决你问题的(如果有)。事实上,它应该是一个
size\u t
。但是如果
iRecordCount
是一个常量积分表达式(如果它被用作数组的维数,则必须如此),林特在这里抱怨这件事肯定是不恰当的。是的,我同意。即使变量const int的值大于0,它仍然会抱怨我认为这是错误的。无法更改变量,因为它是常量。也许lint在这种情况下没有正确地计算代码?谢谢大家的建议。我只是简单地将int改为无符号int,因为这似乎是最实用的?我在答案上打了记号。那我现在怎么投票呢?作为一名程序员,你可能会发现我的IT技能相当惊人,哈哈。