对于类中的赋值,我们应该使用 C++98 中的 json-c 构建一个 json 对象,这与我们在二叉搜索树上执行的一些操作有关。
该对象由较小的对象组成,这些对象描述了我们在此代码中对二叉搜索树所做的操作。但是,当将对象添加到较大的对象时,我得到一个位置变化很大的段错误。它可以发生在从 3 个操作到 40 个操作的任何地方,我很困惑。
如果我将以下代码注释掉,程序从头到尾运行得非常好,让我相信这是我问题的根源。
这是代码中使用的一些 json_object* 的声明:
bigArr = json_object_new_array();
Assignment6Output = json_object_new_object();
opCount = 1;
这是似乎让我遇到段错误的实际代码:
json_object *jOp1 = json_object_new_object();
json_object *jAdd = json_object_new_string("add");
json_object *jMovieAdd = json_object_new_string(name.c_str());
json_object_object_add(jOp1, "operation", jAdd);
json_object_object_add(jOp1, "parameter", jMovieAdd);
json_object_array_add(bigArr, jMovieAdd);
json_object_object_add(jOp1, "output", bigArr);
string counter = static_cast<ostringstream*>( &(ostringstream() << opCount) )->str();
json_object_object_add(Assignment6Output, counter.c_str(), jOp1);
其中 'name' 是传递给添加节点函数的字符串。
字符串计数器是从 int 到字符串的转换,它是已发生操作数的计数器。
如果有人可以帮助我指出正确的方向,我会很高兴。