Информация об изменениях

Сообщение Re[23]: JetBrains от 27.04.2016 13:20

Изменено 27.04.2016 13:23 Няшка

Здравствуйте, Artem Korneev, Вы писали:

AK>Сразу возникает две мысли. Во-первых, delete не обнуляет указатель. Впрочем, тут надо бы посмотреть на документацию к тому компилятору, который использовался в том проекте, но всяко надёжнее и безопаснее было бы добавить "m_pSerial = null". Ибо если какой-то компилятор обнуляет, то другой может не обнулять. Иначе рискуем вызвать delete для уже уничтоженного объекта.


delete 0 не приводит ни к чему фатальному

можно было просто писать

...
delete m_pSerial;
m_pSerial = new CSerial();
...
Re[23]: JetBrains
Здравствуйте, Artem Korneev, Вы писали:

AK>Сразу возникает две мысли. Во-первых, delete не обнуляет указатель. Впрочем, тут надо бы посмотреть на документацию к тому компилятору, который использовался в том проекте, но всяко надёжнее и безопаснее было бы добавить "m_pSerial = null". Ибо если какой-то компилятор обнуляет, то другой может не обнулять. Иначе рискуем вызвать delete для уже уничтоженного объекта.


delete 0 не приводит ни к чему фатальному

можно было просто писать

...
//if (m_pSerial)
delete m_pSerial;
m_pSerial = new CSerial();
...