我有一个问题,我的线程代码中有这个指针,它们正在那里修改,但是当它返回到主代码时,更改不是这样的:
线程
void threaded_function(Model_factory &mf, ppa::Node *root) { // threads management
try { // n try...
主要的
int main(int argc, char *argv[]) { ...
在主要我正在创建一个节点根,然后在线程中节点被赋予序列并有一个布尔值更改为 true,如:
ppa::Node *root;
在线程正在工作(线程组)中,我可以根据需要获取并设置该布尔值,但是当线程组以 join all 结束时(这是 boost),指针根在这一行给我 0
cout << root->has_sequence() << endl;
在此继续之后,节点再次充满了一些东西,所以我想问的是为什么我的节点指针没有反映线程中的变化,是设计还是我错了(可能是第二个),我该怎么办一个全局根节点可以解决我的问题,但为什么呢?