Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Может быть существуют устойчивые к ошибкам способы приведения типов или программные средства тестирования подобного кода?За меня уже ответили, но я дополню. Ошибку надо исправлять в проектировании. IStream::Read принимает void*, а должен BYTE*. Если бы он принимал BYTE* никаких кастов не нужно было бы и компилятор выдал бы ошибку.
Array<byte> data;
Stream<byte> stream;
...
stream.Read(data, dataSize);
* This source code was highlighted with Source Code Highlighter.(void*)&pbArray даст using old-style casts warning. Этого уже достаточно будет чтобы посмотреть на код более пристально, и с большой вероятностью когда программист будет переписывать его на static_cast<void*> он эту ошибку увидит.
Один символ ценой в уязвимость