如何使用动态分配的结构阵列满足C6011误差



我们有一个由本地指针指向的堆放自定义结构。检查阵列的指针是否为NULLPTR。但是,在我的循环期间,VC 抱怨说,在数组中使用索引条目的第一次尝试是"删除null Pointer'PPI"。

我认为我有一个愚蠢的时刻,但是似乎没有任何方法可以满足6011警告...我如何纠正这种情况?

我包含了一些代码段,以简要说明所讨论的代码。

// Previously, SystemInfoObject.PeripheralPortInfo is heap-alloc'd to contain 
// multiple PeripheralInfo structures, and 
// SystemInfoObject.PeripheralPortInfoCount is adjusted to the number 
// of elements.
PeripheralInfo *ppi = nullptr;
ppi = SystemInfoObject.PeripheralPortInfo; // Set our local pointer
if (ppi != nullptr)
{
   for (int i = 0; i < SystemInfoObject.PeripheralPortInfoCount; i++)
   {
      if (_tcsncmp(ppi[i].PortName, _T("\\"), 2) == 0) // C6011
      {
          // Some code
      }
   }
}

Visual Studio再次罢工,我没有看到循环条件以后需要某些代码来更改指针ppi,并且从未在随后的循环迭代中重新检查NULL条件。<<<<<<<<<<<<<<<<<<<<<<<<<<<<

希望我可以删除我的问题!所有设置!

最新更新