c_str()函数应用的一些问题
string aa;
char * bb = "abc";
strcpy_s((char *)aa.c_str(), strlen(bb) + 1, bb);
//这时候 aa 中有值 是“abc”
vector<string> vecStr;
vecStr.push_back(aa);
//但是这时候 vecStr中的第一个元素是空的string
//如果上边用的是直接赋值 aa = bb; 那下边的vector中就会有值
想问下这是怎么回事
[解决办法]
把这句
- C/C++ code
strcpy_s((char *)aa.c_str(), strlen(bb) + 1, bb);
[解决办法]
应该用aa = bb;
strcpy_s((char *)aa.c_str(), strlen(bb) + 1, bb);
LZ强制操作写了string内部数据的句柄,aa是不完整的。