C++ 如何将几个参数传递给回调函数?

C++ 如何将几个参数传递给回调函数?,c++,callback,C++,Callback,使用opencv库,我需要注册一个回调。据我所知和经验,C++回调不“看见”全局变量,这意味着参数必须作为指针传递。 臭名昭著的回调:void onMouseMoved(int事件、int i、int j、int标志、void*param)由setMouseCallback函数触发。因为我需要传递几个变量,所以我将它们包装在一个结构中。在将此结构传递给setMouseCallback之前,一切正常,我可以访问其中的任何字段,但在另一端,任何访问字段的尝试都会导致此错误: terminate ca

使用opencv库,我需要注册一个回调。据我所知和经验,C++回调不“看见”全局变量,这意味着参数必须作为指针传递。 臭名昭著的回调:
void onMouseMoved(int事件、int i、int j、int标志、void*param)
setMouseCallback
函数触发。因为我需要传递几个变量,所以我将它们包装在一个结构中。在将此结构传递给
setMouseCallback
之前,一切正常,我可以访问其中的任何字段,但在另一端,任何访问字段的尝试都会导致此错误:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

我不明白为什么。换句话说,如何正确传递多个信息?

这是否回答了您的问题?一个可能的原因是结构对象在另一端被破坏。请找出一个复制的例子,或者尽可能详细地描述。请提供一个例子。我正在处理它,我需要先格式化代码。我发现:看起来和我正在做的没有什么不同,但我会让你知道