Как разрешить этот анализ кода C6385. Предупреждение: чтение недопустимых данныхC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как разрешить этот анализ кода C6385. Предупреждение: чтение недопустимых данных

Сообщение Anonymous »

Я пытаюсь обратиться к предупреждению анализа кода, которое появляется в следующем методе: < /p>

Код: Выделить всё

CStringArray* CCreateReportDlg::BuildCustomAssignArray(ROW_DATA_S &rsRowData)
{
INT_PTR         iAssign, iNumAssigns, iUsedAssign;
CStringArray    *pAryStrCustom = nullptr;
CUSTOM_ASSIGN_S *psAssign = nullptr;

if (rsRowData.uNumCustomToFill > 0)
{
pAryStrCustom = new CStringArray[rsRowData.uNumCustomToFill];
iNumAssigns = m_aryPtrAssign.GetSize();
for (iAssign = 0, iUsedAssign = 0; iAssign < iNumAssigns; iAssign++)
{
psAssign = (CUSTOM_ASSIGN_S*)m_aryPtrAssign.GetAt(iAssign);
if (psAssign != nullptr)
{
if (!psAssign->bExcluded)
{
pAryStrCustom[iUsedAssign].Copy(psAssign->aryStrBrothersAll);
iUsedAssign++;
}
}
}
}

return pAryStrCustom;
}
< /code>
Строка нарушения кода: < /p>
pAryStrCustom[iUsedAssign].Copy(psAssign->aryStrBrothersAll);
< /code>
Я составляю этот код как для 32 -битного, так и 64 -битного. Поднимается предупреждение: 

Предупреждение (C6385) Чтение недействительных данных из parystrcustom 
: читаемый размер (size_t)*40+8 bytes, но 80 может быть чтение. Соответствующая, но структура custom_assign_s определяется как:
typedef struct tagCustomAssignment
{
int iIndex;
CString strDescription;
CString strHeading;
BOOL bExcluded;
CStringArray aryStrBrothersAll;
CStringArray aryStrBrothersWT;
CStringArray aryStrBrothersSM;
BOOL bIncludeWT;
BOOL bIncludeTMS;
BOOL bFixed;
int iFixedType;
} CUSTOM_ASSIGN_S;
< /code>
Мой код функциональный (в течение многих лет), но есть ли улучшение кодирования, которое я могу сделать для решения этой проблемы? Я прочитал связанную статью, и мне это не ясно. Я также видел этот вопрос (чтение неверных данных C6385) в аналогичных направлениях. Но в моем коде я не вижу, как это применимо.

Подробнее здесь: https://stackoverflow.com/questions/695 ... valid-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»