我试图用libjson库解析服务器上的json数据。当我使用g ++编译器时它工作正常。现在我使用的是arm-none-linux-gnueabi-g ++编译器。
它不会产生任何编译错误,但是当程序运行时,当程序到达构建函数json_parse(json)时会产生分段错误。 这是代码
curl = curl_easy_init();
if(curl) {
stringstream bb;
bb<<"softland3.chillarcards.com/track/campustest/payment_type.php" ;
curl_easy_setopt(curl, CURLOPT_URL,strdup(bb.str().c_str()));
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_to_string);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
res = curl_easy_perform(curl);
cout << response <<endl;
vector <clas> vv;
json_char * json;
JSONNODE_ITERATOR i;
std::string node_name;
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
JSONNODE *n = json_new(JSON_NODE);
if(json_is_valid(response.c_str()))
{
json = json_strip_white_space(response.c_str());
n = json_parse(json);
ParseJSON(n,vv);
// cout<<"size of vector " <<vv.size()<<endl;
// for (std::vector<clas>::iterator i = vv.begin(); i != vv.end(); i++)
// {
// cout<<i->First<<endl;
// cout<<i->Second<<endl;
// }
}
else{
cout << "ERROR IN Validation" <<endl;
}
// json_free(json);
json_free_all();
curl_easy_cleanup(curl);
}
curl_global_cleanup();
}
感谢。