LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Ну так он заоптимизурует, если там действительно данные по ptr есть (либо сам подставит).

Нет. Он заоптимизирует, потому что в стандарте написано, что при ptr==NULL возникает неопределённое поведение, а значит такой случай можно не рассматривать.

#include <iostream>
#include <string>

std::string f(int *p)
{
  int i = *p;

  if(p == NULL)
    return "null";

  return "not null";
}

int main()
{
  std::cout << f(NULL) << std::endl;
}

$ g++ null.cc -O2 -o null
$ ./null 
not null

Исходная версия hateyoufeel, :

Ну так он заоптимизурует, если там действительно данные по ptr есть (либо сам подставит).

Нет. Он заоптимизирует, потому что в стандарте написано, что при ptr==NULL возникает неопределённое поведение, а значит такой случай можно не рассматривать.