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

标签 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;
}

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

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/

相关文章:

C程序在本地运行良好,但在远程服务器上出现段错误

c++ - Caffe 删除 .cu 实现出现编译错误

c++ - 将数字设置为小数点后的 float

python - 如何将 Cython 生成的模块从 python 导入到 C/C++ 主文件? (使用 C/C++ 编程)

linux - 微小的 "manually"创建的 ELF 给出了段错误

c++ - 分段故障

c - 我使用 fread 在 BMP 上读取 infoheader 时出现段错误。我该如何解决这个问题?

OS X 的 c++ 14 编译器

c++ - 将基于堆的 N 元数组引用传递给函数

java - JVM 在 eclipse 中运行,在 SIGSEGV 外部崩溃