gpt4 book ai didi

c++ - push_back 常量字符*

转载 作者:行者123 更新时间:2023-11-30 01:26:03 28 4
gpt4 key购买 nike

我试图在 forloop 的 vector 中推回一个 const char*char_temp 是一个名为 segment 的结构,而 chars_temp 是一个结构 vector 。请参阅下面的代码:

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 是一个指针,所以 char_temp.symbol_first 包含相同的地址。该结构需要 const char* 用于 char_temp.symbol_first,那么如何在 forloop 中用不同地址填充此 vector ?

我在 forloop 中尝试了 const char* bg_c​​c = new char,但是 bg_cc 保持相同的地址。

提前致谢!

最佳答案

I tried const char* bg_cc = new char in the forloop, but bg_cc keeps having the same address.

还好,有点意料之中。重要的是它指向不同的地址。

您需要使用 char* bg_c​​c = new char 然后使用 sym.c_str() 中的 strcpy 来创建拷贝,而不仅仅是将指针分配给 sym.c_str()

关于c++ - push_back 常量字符*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11241448/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com