繁体   English   中英

C ++ jsoncpp:循环读取json文件时出现Segfault

[英]C++ jsoncpp: Segfault while reading json file in a loop

Json文件:

[
    {"A":"sample1","B":"sample2","C":"sample3,"D":"sample4"},       
    {"A":"sample5","B":"sample6","C":"sample7,"D":"sample8"}, 
    {"A":"samplea","B":"sampleb","C":"sampleb,"D":"sampleb"},
    .
    .
    .
    }
]

我的输入文件中有2075980个此类条目

struct entry_t 
{
    U64 param;
}
entry_t entry; 
Json::Value root;
Json::Reader reader;
ifstream test("json_file", ifstream::binary);    
if(!reader.parse(test, root, false))
{
    cout << reader.getFormattedErrorMessages() << endl;}
else
{ 
    for(unsigned int i = 0; i < root.size(); i++)
    {  
        entry.param   = root[i].get("A", "null").asInt();
    }
}

上面的代码可以正常工作直到第472783次循环。 在以下循环中,尝试访问“ entry.param”时遇到段错误

我是C ++和jsoncpp的新手,无法找出seg错误的原因。

在Windows OS上进行测试,JsonCPP分配了2.5 GB的空间来将文件存储在内存中...

您必须切换到64位或使用另一个具有较小内存占用的本机lib( 请参阅此处

内存使用情况

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM