C++ 尝试读取向量(C+;+;)时发生访问冲突?

C++ 尝试读取向量(C+;+;)时发生访问冲突?,c++,memory,stdvector,access-violation,C++,Memory,Stdvector,Access Violation,我一直有一个奇怪的错误,我不太明白。我创建了一个向量,其中包含指向我创建的自定义类的指针。然而,向量中不应该有任何元素,因为我不推任何东西。当尝试循环通过它(或简单地调用.size())时,我会遇到访问冲突。有人知道为什么会这样吗?以下是代码供参考: void UserInterfaceManager::DrawWidgets(sf::RenderWindow* l_renderWindow) { std::cout << m_uiWidgets.size(); fo

我一直有一个奇怪的错误,我不太明白。我创建了一个向量,其中包含指向我创建的自定义类的指针。然而,向量中不应该有任何元素,因为我不推任何东西。当尝试循环通过它(或简单地调用.size())时,我会遇到访问冲突。有人知道为什么会这样吗?以下是代码供参考:

void UserInterfaceManager::DrawWidgets(sf::RenderWindow* l_renderWindow)
{
    std::cout << m_uiWidgets.size();
    for (sf::Int16 i = 0; i < static_cast<sf::Int16>(m_uiWidgets.size()); i++)
    {
        m_uiWidgets[i]->DisplayWidget(l_renderWindow);
    }
}
void UserInterfaceManager::DrawWidgets(sf::RenderWindow*l_RenderWindow)
{
std::cout DisplayWidget(l_renderWindow);
}
}
UserInterfaceManager.h中uiWidgets的声明

std::vector<UserInterfaceWidget*> m_uiWidgets;
std::vectormuiwidgets;

提前谢谢

好吧,对不起,伙计们,这是一个非常愚蠢的错误-我的UserInterfaceManager类本身有一个指针问题,所以向量根本没有正确创建。道歉并感谢所有帮助过你的人

你说向量不应该有元素。您是否调试/打印了要确认的大小?当我尝试将大小打印到控制台时,它会崩溃…那么问题不在于循环。请提交一个。您共享的代码不足以识别问题。OP有一个有效的问题,如果您需要更多信息,请询问,而不是否决投票。