如何检查类数组的元素是否为空?

时间:2018-12-13 14:06:20

标签: c++ arrays class pointers null

我原来是

entity * Ptr[8] = { NULL, };

但是当我使用

通过引用将Ptr带到另一个函数时
updateMap(&mapGrid, Ptr); //and
void updateMap(map * mapGridU, entity * entityPtr) //then
if (entityPtr[i] != NULL)// gives an error

它说没有运算符“!=”匹配实体和整数的这些操作数

1 个答案:

答案 0 :(得分:0)

下标运算符间接指示指针操作数。结果是指针所指向的值加上整数操作数。

由于entityPtrentity *,因此它指向entity对象。因此,entityPtr[i]操作导致类型为entity的左值。由于您正在将entity对象与NULL进行比较,因此必须有一个不等式运算符,该运算符可以使用entity和指针常量NULL作为参数。您的错误表明不存在此类运算符。

我怀疑您的意图不是将指向的entity对象与NULL进行比较。我的怀疑是您打算比较一些指向NULL的指针。