我正在使用有限元库进行一些计算,但遇到了一个奇怪的问题。
我基本上有以下for循环:

  MeshBase::const_node_iterator  node_it = mesh.nodes_begin();
  for (unsigned int i=0;i<n_nodes;i++ , node_it++){
    const Node* node2 = *node_it;
    Point dumpoint( (*node2)(0), (*node2)(1), (*node2)(2));
    Number dumreal= (Number) mesh_data.get_data(node2)[0];

//    std::cout << dumreal <<std::endl;
    dummap[dumpoint] = mesh_data.get_data(node2)[0];

  }


如果我用cout取消注释该行,那么它将起作用。否则我会遇到段错误。不管我打印什么:

std::cout << std::endl;


重要说明是dummap是全球性的

std::map<Point,Number>

最佳答案

使用valgrind表明问题出在我分配给其他地方的一些char *数组上。
谢谢^^

10-07 16:02