首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否违反了malloc()和glDrawPixels()的访问?

是否违反了malloc()和glDrawPixels()的访问?
EN

Stack Overflow用户
提问于 2009-04-09 05:12:16
回答 1查看 531关注 0票数 1

有人能看到这段代码出了什么问题吗?

SIZE_BG是6MB,因为我正在尝试绘制一个大的位图图像(3366x600)。我使用malloc来防止我的映像溢出堆栈。我在调用glDrawPixels()时遇到访问冲突错误。当我在调用glDrawPixels之前检查了前几个字节时,bgPtr似乎指向了正确的数据,而且它们是正确的。

代码语言:javascript
复制
    bgPtr = (char*)malloc(SIZE_BG);
    fstream inFile(texFileName, ios::in | ios::binary);
    inFile.read(bgPtr, SIZE_BG);
    inFile.close();

//... other code

    glDrawPixels(3366, 600, GL_BGRA_EXT, GL_UNSIGNED_BYTE, bgPtr+54);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-04-09 05:19:15

SIZE_BG为6MB

3366×600大约是192万像素

BRGA表示每个像素4个字节

因此,3366×600×4只有7.7MB多一点

因此,你的缓冲区太小了。glDrawPixels()将读过末尾,进入未分配的内存。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/732894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档