c++ - 字符指针(由 new 分配)

标签 c++ string pointers new-operator strcmp

我写了下面的代码:

char *pch=new char[12];
char *f=new char[42];
char *lab=new char[20];
char *mne=new char[10];
char *add=new char[10]; 

如果最初我希望这些数组为空,我不能这样做吗:

*lab="\0";
*mne="\0";
and so on.....

之后,如果我想向一个空数组中添加一些 cstring,我不能检查:

 if(strcmp(lab,"\0")==0)
 //then add cstring by *lab="cstring";

如果我不能做任何这些事情,请告诉我正确的方法......

最佳答案

在 C++11 中,初始化数组的一种简单方法是使用大括号初始化器:

char * p = new char[100] { 0 };

这里的原因是所有缺失的数组元素都将被零初始化。您还可以使用显式值初始化(我认为这甚至在 C++98/03 中是允许的),它是原始类型的零初始化:

char * q = new char[110]();

关于c++ - 字符指针(由 new 分配),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476515/

相关文章:

c - 尝试返回指向头文件中向前声明的结构的指针时出现错误

c - 对指针数组进行排序

c++ - 在 C++ : strange performance issue 中读取文件的奇特方式

c++ - 推断函数模板参数的确切类型

C++字符串问题

java - 如何在 Java 中创建(实际上是)指针

c++ - 使函数异常安全

c++ - 纹理渲染和 VBO 的 [OpenGL/SDL/C++]

php - 如何生成随机的、唯一的字母数字字符串?

java - 输出错误:Binary to decimal java