У нас есть выделенный в куче массив пользовательских структур, на который указывает локальный указатель. Указатель на массив проверяется на nullptr. Однако во время моего цикла VC ++ жалуется, что первой попыткой использования индексированной записи в массиве является «Разыменование нулевого указателя« 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
}
}
}