이 오류가 계속 발생하지만 변수에 대한 동적 메모리 (upSizedPlaintext, upsizedKey, upsizedCiphertext 또는 upsizedKeyD)를 언제 삭제할 수 있는지 알 수 없습니까?힙 손상 감지, 동적 메모리를 어디에서 삭제할 수 있습니까?
과제를 수행하기 때문에 BOOST 테스트를 사용해야하고 강사가 사용할 테스트에서 encryptedText가 삭제되고 BOOST 테스트에서 해독됩니다. 하지만 위에서 변수를 삭제할 수있는 곳을 찾을 수는 없습니다. 모든 아이디어와 도움이 크게 감사하니?
또한 C++ 문자열이 아닌 C 스타일 문자열을 사용해야합니다.
그건 원래 생각했는데 ... 원래는 그게 좋았지 만, 좀 더 생각하고 효과가 있다고 생각하지 않았습니다. 수정 한 후에 언급 된 변수를 어디에서 삭제할 수 있습니까? – Brandon
거기에 단 하나의 대답이 있습니다. 더 이상 메모리를 사용할 필요가 없을 때. 귀하의 경우에는'암호화 '에서 바로 그렇게하는 것처럼 보입니다.이 함수를 떠날 때 더 이상'upsizedPlainText'와'upsizedKey'가 가리키는 메모리를 사용할 수 없으므로 삭제하는 것이 옳습니다. 그러나'decrypt'에서는 메모리를 할당하지만 절대 삭제하지 않습니다. 따라서 메모리 누수가 발생합니다. 일반적으로 언제 메모리를 삭제해도 안전한지 추적하는 것은 매우 어려운 일입니다. 당신이해야하는 방식으로 힙 할당을 사용하지 않는 또 다른 이유. – john
아, 네,'암호 해독 '후 삭제하는 것을 잊었지만 지금 추가하고 수정 해 드리겠습니다. – Brandon