Вам не нужно проверять ненулевое значение при вызове delete. Это явно определено, чтобы ничего не делать.
delete NULL; // this is allowed
Любой правильный код, который вы пишете, не будет затронут этими странными значениями, которые компилятор помещает в вашу неинициализированную или уже освобожденную память. Он помещает эти значения туда, чтобы помочь вам найти ошибки. Ergo, у вас есть ошибка.