new char[6]; 这个 新创建的字符数组不用将返回的地址赋给字符指针吗?

string str = "string";
char * ch = "char";
new char[str.getlength()+1];//为什么这里不将指针ch赋值,下面的复制函数调用ch时也是新创建空间的数据呢?
strcpy(ch, str.data());
ch = new char[str.getlength()+1]; // 这里这样写就能明白了,但是为什么ch没有被赋值,但是还会指向新创建的空间呢?
最新回答
我深爱德人﹎

2024-09-07 00:00:54

可以把一个字符串数组的首地址赋给一个指向字符的指针的。
例如:
char s[20][30],*p;
使用下面的任何一个语句,都可以实现“把一个字符串数组的首地址赋给一个指向字符的指针”:
p=s;
p=&s;
p=s[0];
p=&s[0];
p=&s[0][0];