基本语法数组声明

Yos*_*Yos 0 c++

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

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

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

MapItemPtr* pMapItems = new MapItemPtr[ (unsigned int)iRecordCount ];
Run Code Online (Sandbox Code Playgroud)

能做:

MapItemPtr* pMapItems = new MapItemPtr[static_cast<unsigned int>( iRecordCount )];
Run Code Online (Sandbox Code Playgroud)

这是解决lint错误的正确方法:行3811错误737:从int到unsigned int的升级签名丢失

还是有更优雅的方式?

Ern*_*ill 6

因为iRecordCount显然是为了保持一个非负整数,为什么不unsigned int首先将它声明为?

  • 实际上,它应该是一个`size_t`. (3认同)