標題可能有點用詞不當......只是因爲我不確定我的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