我正在尝试在一个forloop的向量中推回一个const char*。char_temp是一个名为segment的结构,而chars_temp是一个结构向量。请看下面的代码:
for (int bg = 0; bg < str.size(); bg++) {
string sym(1, str[bg]);
const char* bg_cc;
bg_cc = sym.c_str();
char_temp.symbol_first = bg_cc;
char_temp.symbol_second = "*";
chars_temp.push_back(char_temp);
}问题是推送支持的字符是一个指针,所以char_temp.symbol_first由相同的地址组成。该结构需要一个用于char_temp.symbol_first的const char*,那么如何在forloop中用不同的地址填充这个向量呢?
我在forloop中尝试了const char* bg_cc = new char,但是bg_cc仍然有相同的地址。
提前感谢!
发布于 2012-06-28 17:17:27
我在
循环中尝试了const char* bg_cc = new char,但是bg_cc仍然有相同的地址。
这很好,这在某种程度上是意料之中的。重要的是它指向不同的地址。
您需要使用char* bg_cc = new char,然后从sym.c_str()使用strcpy来创建副本,而不仅仅是将指针分配给sym.c_str()。
https://stackoverflow.com/questions/11241448
复制相似问题