不寻常的std :: map运行时错误

时间:2009-06-24 21:27:06

标签: runtime stdmap

我正在为我正在制作的游戏编辑一个编辑器,作为该编辑器的一部分,显然我需要纹理。我已经创建了一个std :: map变量,

std::map<std::string, unsigned int> textures;

在我的图片加载代码中,我有以下代码段。

unsigned int id;
glGenTextures(1, &id);
glBindTexture(GL_TEXTURE_2D, id);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, imageWidth, imageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, imageData);
glBindTexture(GL_TEXTURE_2D, 0);

textures[filename] = id;

现在由于某种原因,我在尝试使用上面的代码后遇到了运行时错误。一个访问冲突错误,在调试时,我指向std :: map代码本身,具体来说,这部分:

_Nodeptr _Lbound(const key_type& _Keyval) const
    {   // find leftmost node not less than _Keyval
    _Nodeptr _Pnode = _Root(); // ** this is the highlighted line **
    _Nodeptr _Wherenode = _Myhead;  // end() if search fails

    while (!_Isnil(_Pnode))
        if (_DEBUG_LT_PRED(this->comp, _Key(_Pnode), _Keyval))
            _Pnode = _Right(_Pnode);    // descend right subtree
        else
            {   // _Pnode not less than _Keyval, remember it
            _Wherenode = _Pnode;
            _Pnode = _Left(_Pnode); // descend left subtree
            }

    return (_Wherenode);    // return best remembered candidate
    }

我只是打电话给我的图像加载功能只是为了测试系统。我检查了变量,文件名和id变量都是正确的。关于什么可能导致运行时崩溃的任何想法?

0 个答案:

没有答案