LS全部都是坑爹答案,要么没明白LZ意思,要么就是错的。
#define M 256
char string[M] = {0};
这样就行了。M是字符数组的大小。足够大就行。
string str=" ";
这个显然错了,因为字符串不为空,而是有个空格。
string str="";
这个确实是空的。但是string是个类。我估计LZ的意思应该是一般的char *吧
而且string的默认构造函数得到的就是空字符串,完全没必要多此一举。
即
string str;
这样得到的就是空字符串。
最后
char *p = "";
这样得到的也是空字符串,但是这个字符串是只读的,即不可更改。虽然我这里没用const char *也能编译通过。但是系统确实不会允许你修改它。
对于那个推荐答案,虽然对于指针来说,这就是置空,但LZ显然问的不是这个。
char* p; ....; p = (void*)0;即可。
如果是动态分配的内存(使用malloc 或 new),置空之前要将内存释放(free 或 delete)
string str=" ";
string str="";