Как Вы проверяете на недопустимый указатель?

Вы можете сделать что-то подобное, используя arguments:

function multiply(s) {
  return function () {
    return Array.from(arguments).reduce(function(accumulator, currentValue) {
      return accumulator * currentValue;
    }, s);
  }
}
12
задан DShook 27 January 2009 в 04:33
поделиться

5 ответов

Всегда инициализируйте свои указатели на ПУСТОЙ УКАЗАТЕЛЬ (то есть, 0). Из http://www.lysator.liu.se/c/c-faq/c-1.html:

Нулевой указатель концептуально отличается от неинициализированного указателя. Нулевой указатель, как известно, не указывает на любой объект; неинициализированный указатель мог бы указать где угодно.

31
ответ дан 2 December 2019 в 02:59
поделиться

Вы не должны проверять на не - ПУСТОЙ УКАЗАТЕЛЬ при вызове удаляет. Это явно определяется, чтобы ничего не сделать.

delete NULL; // this is allowed

Любой правильный код, который Вы пишете, не был бы затронут этими странными значениями, которые компилятор помещает в Ваше неинициализированное или уже освобожденную память. Это помещает те значения там, чтобы помочь Вам найти ошибки. Следовательно, у Вас есть ошибка.

13
ответ дан 2 December 2019 в 02:59
поделиться

Лучший способ устанавливает его в NULL, если это ни на что не указывает. Globals, указатели в других пространствах имен и локальные статические указатели автоматически инициализируются, чтобы быть нулевыми указателями. Участники класса и нормальные местные жители должны быть инициализированы к ПУСТОМУ УКАЗАТЕЛЮ вручную, если необходимо протестировать их против ПУСТОГО УКАЗАТЕЛЯ (некоторым людям нравится использовать 0 вместо этого. Конечно, это полностью эквивалентно).

Затем Вы можете проверить по ПУСТОМУ УКАЗАТЕЛЮ, но также и можете передать указатель сразу же на delete, потому что это не будет иметь никакого эффекта для удаления нулевого указателя (гарантируемый Стандартом C++).

10
ответ дан 2 December 2019 в 02:59
поделиться

Вы задаете неправильный вопрос.
Ваши указатели никогда не должны получать эти значения во-первых. Вы не можете полагаться на компилятор для установки недопустимого указателя на что-то. всегда необходимо делать это сами путем присвоения ПУСТОГО УКАЗАТЕЛЯ ему.

3
ответ дан 2 December 2019 в 02:59
поделиться

найденный этим после того, как я отправил также.

0
ответ дан 2 December 2019 в 02:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: