在我的代码中,我像这样创建套接字对象:
UDPSocket sock(ð);
“ eth”的类型为EthernetInterface。
在创建套接字对象的函数内部使用“ sock”函数,一切都很好,但是我需要访问相同的套接字才能在其他函数中接收UDP数据包。
由于其功能,它不能与其他全局变量一起使用,我尝试在全局变量中设置UDPSocket socket;
,然后
UDPSocket s(ð);
sock = s;
这似乎使正在运行它的ARM设备崩溃。我不想创建一个UDPObject,然后每次调用它们时都必须将它作为参数传递给每个函数。
答案 0 :(得分:0)
尝试像这样创建全局指针
UDPSocket *socket;
并在开始时将其初始化:
int main() {
socket = new UDPSocket(ð);
//other code
}
,或者至少在使用之前。而且不要忘了以后将其删除
编辑:
考虑使用std::unique_ptr<UDPSocket>
并使用std::make_unique<UDPSocket>(ð)