Как проверить, указывает ли указатель на 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 с данными, и это работает нормально. Я просто не могу проверить, является ли оно нулевым или пустой.

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

-121 ---] 1158333-capistrano :ошибка sudo после того, как до этого все работало нормальноЯ недавно начал используя capistrano в моем развертывании приложения rails. У меня это работало нормально, а потом вдруг я начал получать эту ошибку, извините, у вас должен быть tty для запуска sudo...

Недавно я начал использовать capistrano в развертывании моего приложения rails. У меня он работал нормально, а потом вдруг я начал получать эту ошибку

sorry, you must have a tty to run sudo

после каждого гема, который он пытался установить. Я знаю, что эту проблему обычно можно решить, поместив набор :use_sudo, falseв файл deploy.rb, но он у меня уже есть. И самое странное, что я вернул ВЕСЬ свой каталог обратно к тому моменту, когда я точно знаю, что capistrano работает, и он все еще выдает ту же ошибку.

На моем сервере работает CentOS

Чем может быть вызвана проблема? Любые идеи?

5
задан yiinewbie 26 April 2012 в 20:04
поделиться