경고 C26404
잘못된 상태일 수 있는 항목을 삭제
owner<T>
하지 마세요(r.3)
설명
소유자 포인터가 리소스를 해제하거나 전송하면 "잘못된" 상태가 됩니다. 이러한 포인터를 삭제하면 이중 삭제로 인해 메모리가 즉시 손상되거나 삭제된 리소스가 다른 소유자 포인터에서 액세스될 때 액세스 위반이 발생할 수 있습니다.
코드 분석 이름: DONT_DELETE_INVALID
예 1
값을 전송한 후 소유자 삭제:
gsl::owner<State*> validState = nullptr;
gsl::owner<State*> state = ReadState();
validState = state;
if (!IsValid(state))
delete state; // C26404
예제 2
초기화되지 않은 소유자 삭제:
gsl::owner<Message*> message;
if (popLast)
message = ReleaseMessage();
delete message; // C26404
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기