首页 > 解决方案 > 为什么当我尝试通过地址访问 Lambda 本地变量时出现访问冲突

问题描述

大家好,我的活动管理器有问题

首先我有一个负责将事件发送给我的事件管理器的 Lambda

glfwSetWindowSizeCallback(m_Window, [](GLFWwindow* window , int Width , int Height) {

WindowData Data = *(WindowData*)glfwGetWindowUserPointer(window);

WindowResize ReSize(Data.ID, Width, Height);

EventsManager::Get().PushEvent(&ReSize);

});

PushEvent 函数应该将指针推回 std::vector<IEvent*> 上的事件队列

void EventsManager::PushEvent(IEvent* e)
{
    m_EventsQueue.push_back(e);
}

实际上,当我有一个事件时,这种方法可以正常工作,但是当我连续有多个事件时,我遇到了访问冲突。

我只是想了解为什么会发生这种情况以及如何解决这个问题?

标签: c++

解决方案


推荐阅读