[英]how to assign char to const char*
如何在C中将char分配给const char *?
const char* cp;
unsigned maxlen = 20;
cp = new char[maxlen];
char p = 'U';
cp = p;
我收到错误消息:
Error: invalid conversion from 'char' to 'const char*
如何将char p分配给数组cp的第一个元素?
如何将char p分配给数组cp的第一个元素?
您不能,因为cp
是指向const char
的指针。 const
防止初始化后发生任何突变。
如果您确实想更改cp
的元素,请删除const
:
char* cp;
unsigned maxlen = 20;
cp = new char[maxlen];
char p = 'U';
cp[0] = p;
请注意,以上是糟糕的C ++。 您应该将std::vector
用于动态数组(或将std::array
用于固定大小的数组)。 例:
std::vector<char> cp;
cp.resize(20);
cp[0] = 'U';
您不能以安全的方式这样做,更好的主意是:
char * nonConstPtr = new char[len];
*nonConstPtr = 'a';
nonConstPtr[1] = 0;
char const * constPtr = nonConstPtr;
您可以通过对现有代码进行强制转换来做到这一点,但是丢掉const-ness通常不是一个好主意(tm):
const char* cp;
unsigned maxlen = 20;
cp = new char[maxlen];
char p = 'U';
char * ptr = (char*)cp;
memset(ptr, 0, maxlen);
*ptr = p;
这是可以接受的还是错误的?
unsigned maxlen = 20;
char *cp;
cp = (char*) malloc(sizeof(char) * maxlen);
char c = 'P';
*cp = c;
我了解缺少空终止符。 我尝试使用strncpy,但不适用于char。
非常感谢您的建议。
如何将字符分配给const char *
const char* cp;
char p = 'U';
cp = &p;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.