gpt4 book ai didi

c++ - C++中字符串分配的段错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:10:35 25 4
gpt4 key购买 nike

看看这个示例函数:

RuntimeConfiguration* conf_rt_conf() {

RuntimeConfiguration *conf;
conf = new RuntimeConfiguration();
conf->arch_path="./archive";
conf->err_log="./err_log";
conf->fail_log="./fail_log";
conf->msg_log="./msg_log";
conf->save="html, htm, php";
conf->ignore="jpg, gif";
conf->cookies="";

return conf;
}

这里一切正常,但是当我运行这样的东西时:

DatabaseInput** conf_db_input() {

DatabaseInput **db_input;
db_input=(DatabaseInput **)malloc(NUMB_SITES*sizeof(DatabaseInput *));
for (int i=0;i<NUMB_SITES;i++) db_input[0]= new DatabaseInput();

db_input[0]->full_name="ABCNews";
db_input[0]->alias="abcn";
db_input[0]->prefix="/eng";

db_input[1]->full_name="Rzeczpospolita";
db_input[1]->alias="rp";
db_input[1]->prefix="/pol";

return db_input;
}

我在第一次分配时遇到段错误。它可能与为此结构分配的固定内存块有关。如何让它正常工作?

最佳答案

我会改变

for (int i=0;i<NUMB_SITES;i++) db_input[0]= new DatabaseInput();

从这里开始:

for (int i=0;i<NUMB_SITES;i++) db_input[i]= new DatabaseInput();

关于c++ - C++中字符串分配的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/798013/

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