gpt4 book ai didi

c++ - 帮助修复内存泄漏

转载 作者:搜寻专家 更新时间:2023-10-31 00:03:35 28 4
gpt4 key购买 nike

我有一个成员函数,其中我需要在运行时获取一些字符数组

我的恐惧
如果我尝试一下

delete buffer;

那我不能

return buffer;

但是我如何释放我分配的内存

char * buffer= new char[size]

class OpenglShaderLoader
{
char * getLastGlslError()
{
char * buffer;//i don't know the size of this until runtime
int size;
glShaderiv(hShaderId,GL_INFO_LOG_LENGTH,&size);//get size of buffer
buffer= new char[size];
//.. fill in the buffer

return buffer;
}
}

最佳答案

你应该返回一个 std::vector<char> .这样,当调用者结束使用 vector 时,它的内容会自动释放。

std::vector<char> getLastGlslError()
{
int size;
glShaderiv(hShaderId, GL_INFO_LOG_LENGTH, &size);
std::vector<char> buffer(size);
// fill in the buffer using &buffer[0] as the address
return buffer;
}

关于c++ - 帮助修复内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5774529/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com