【发布时间】:2015-10-15 15:45:16
【问题描述】:
我不想在下面的代码中使用字符串 str 初始化静态字符缓冲区,但我收到以下错误:
错误:初始化时无法将'std::string'转换为>'char'
如果我使用
static char buf[500] = str.c_str();
我收到以下错误:
error: invalid conversion from ‘const char*’ to ‘char*’
下面是我的代码:
std::string str = "<Version="+version+" Ret=\"false\"/>";
static char buf[500] = str;
int len=strlen(buf);
buf[len]='\0';
INFO("Static Buffer :: "<<buf);
【问题讨论】:
-
嗯,那是因为通过猜测编程是行不通的。
-
您的
buf[len]='\0'是多余的:根据定义,len是buf中已经存在的第一个'\0'的索引。您所做的只是将'\0'替换为'\0'。