Asegurar que los punteros compartidos dentro del vector se retrocedan correctamente [cerrado]

Podría tener algunos aspectos de este error, esta es realmente la primera vez que he tratado mucho con punteros compartidos en particular.

Estoy trabajando en atravesar un árbol. Mi árbol consta de una lista vinculada, con un vector de punteros compartidos que representan a todos los elementos secundarios de cada nodo. Para atravesar, estoy (para empezar) tratando de hacer esto:

//--------------------------------------------------------------
void setupMesh(){
    Mesh mesh;

    shared_ptr<Mesh> shared_mesh(&mesh);
    meshes.push_back(shared_mesh);

    checkChildren(root, &temp_mesh);
}

//--------------------------------------------------------------
void checkChildren(Node * temp_node, Mesh * temp_mesh){

    if(!temp_node->children.empty()){
        for(int i = 0; i < temp_node->children.size(); i++){
            if(i > 0){
                shared_ptr<Mesh> new_mesh(new Mesh);
                meshes.push_back(new_mesh);
            }

            temp_node = temp_node->children[0].get();
            checkChildren(temp_child, temp_mesh);
        }
    }  
}

Mi estructura de árbol en sí misma parece estar bien, pero es más un problema con cómo la estoy atravesando y cómo estoy siguiendo los punteros. Actualmente está devolviendo errores de acceso incorrecto. Por lo que puedo decir, parece que estoy insertando un puntero a un objeto temporal, temp_node y temp_mesh.

Para simplificar el proceso que tenía en mente:

Recorra todos los elementos secundarios que pertenecen al nodo [0] (raíz). Para cada uno de los niños, realice este mismo ciclo en ellos. Si el hijo es hijo [0], continúe agregando sus coordenadas al mismo objeto temp_mesh, pero si es otro hijo, cree una nueva malla para almacenarlo y todos los primeros hijos del mismo. Las mallas nuevas deben tener un puntero empujado hacia el vector de mallas (vector>).

¿Alguien tiene consejos sobre cómo podría hacer esto de manera más eficiente, o dónde me estoy equivocando con el manejo de estos punteros en la memoria?

Respuestas a la pregunta(1)

Su respuesta a la pregunta