【发布时间】:2021-08-06 22:38:33
【问题描述】:
这就是我的班级的样子。我的代码编译成功,但是当我运行它时,它崩溃并停止。
class Explore{
public:
Explore(ros::NodeHandle &nh, tf2_ros::Buffer &buffer);
private:
bool is_frontier(size_t mx, size_t my);
void explore_level_three();
void go_to_cell(size_t mx, size_t my);
void publish_markers_array();
void publish_markers();
costmap_2d::Costmap2DROS* global_costmap, *local_costmap;
costmap_2d::Costmap2D* global_costmap_, *local_costmap_;
ros::NodeHandle nh_;
ros::Publisher frontier_array_pub, frontier_pub;
vector<pair<size_t, size_t> >frontiers;
string global_frame, robot_base_frame;
unsigned char *global_og;
size_t size_x, size_y;
double init_wx, init_wy;
int vis[4001][4001], frontier_vis[4001][4001] ;
};
当我将vis[4001][4001], frontier_vis[4001][4001]; 更改为vis[500][500], frontier_vis[500][500]; 时,代码运行成功。
这是我的main 函数-
int main(int argc, char** argv) {
ros::init(argc, argv, "explore_node");
ros::NodeHandle nh("explore_node");
tf2_ros::Buffer buffer(ros::Duration(10));
tf2_ros::TransformListener tf(buffer);
Explore explore_one(nh, buffer);
return 0;
}
我该如何解决这个问题?
【问题讨论】:
-
如何实例化类?你能分享一个Minimal, Reproducible Example
-
-fsplit-stack gcc.gnu.org/wiki/SplitStacks
-
@eerorika 好的。