标题可能有点用词不当......只是因为我不确定我的char指针是否指向NULL,或者它是否指向一个大小为0的char数组。如何检查指针是否指向NULL?
所以我有
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,并且工作正常。我似乎无法检查它是否为空或空。
我意识到这些是两个不同的东西(空和空)。我想知道哪一个数据会在这里,以及如何检查它是否为空/空。
注意:你应该使用'const char *',而不是'char *'。从[(C++)文档](http://www.cplusplus.com/reference/clibrary/cstdlib/getenv/):'该函数返回的指针所指向的字符串不应该被程序修改。' – Cameron 2012-04-26 20:13:38