Как проверить, указывает ли указатель на NULL?

Заголовок может быть немного неправильным... только потому, что я не уверен, указывает ли мой указатель char на NULL или он просто указывает на массив символов размер 0.

Итак, у меня есть

char* data = getenv("QUERY_STRING");

И я хочу проверить, являются ли данные нулевыми (или длина < 1). Я пробовал:

if(strlen(data)<1) 

, но получаю сообщение об ошибке:

==24945== Invalid read of size 1
==24945==    at 0x8048BF9: main (in /cpp.cgi)
==24945==  Address 0x1 is not stack'd, malloc'd or (recently) free'd

Я также пытался

if(data == NULL)

, но с тем же результатом.

Что здесь происходит? Я уже пробовал cout с данными, и это работает нормально. Я просто не могу проверить, являются ли они нулевыми или пустыми.

Я понимаю, что это две разные вещи (нулевые и пустые).Я хочу знать, какие данные будут здесь, и как проверить, являются ли они нулевыми/пустыми.

10
задан Lol4t0 26 April 2012 в 20:15
поделиться