C++ - 如何检查char*是否指向有效的东西?

Tob*_*aar 1 c++ char

我想检查char*是否指向有效的字符串...我可以检查这个变量吗...

char* c;
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

if(c == NULL)  //c is not null
if(*c == '\0') //false
if(strlen(c) == 0)  //exception
Run Code Online (Sandbox Code Playgroud)

我认为不能在未分配时检查char*并且不指向有效的字符串...

R. *_*des 5

事实是,你无法确定指针是否有效.测试NULL可能会让您确定它是无效的,但它不保证任何有效性.这是在C++中不使用这种东西的一个原因.一个std::string始终处于有效状态.