C++中字符串赋值的分段错误

1 c++ segmentation-fault

看看这个示例函数:

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;
}
Run Code Online (Sandbox Code Playgroud)

这里的一切都很好,但是当我运行这样的东西:

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;
}
Run Code Online (Sandbox Code Playgroud)

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

pax*_*blo 6

我改变了

for (int i=0;i<NUMB_SITES;i++) db_input[0]= new DatabaseInput();
Run Code Online (Sandbox Code Playgroud)

这个开始:

for (int i=0;i<NUMB_SITES;i++) db_input[i]= new DatabaseInput();
Run Code Online (Sandbox Code Playgroud)