首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >push_back常量字符*

push_back常量字符*
EN

Stack Overflow用户
提问于 2012-06-28 17:13:44
回答 2查看 3.4K关注 0票数 1

我正在尝试在一个forloop的向量中推回一个const char*char_temp是一个名为segment的结构,而chars_temp是一个结构向量。请看下面的代码:

代码语言:javascript
运行
复制
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_firstconst char*,那么如何在forloop中用不同的地址填充这个向量呢?

我在forloop中尝试了const char* bg_cc = new char,但是bg_cc仍然有相同的地址。

提前感谢!

EN

Stack Overflow用户

回答已采纳

发布于 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()

票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11241448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档