gpt4 book ai didi

c++ - 访问 OpenAL 缓冲区的公共(public)对象属性

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:52 25 4
gpt4 key购买 nike

我创建了一个具有两个公共(public)属性的对象:

class Sound {
public:
unsigned int * source;
unsigned int * buffer;
}

现在我想访问这些变量,但我卡住了......编译器编译没有错误,但是当我做类似的事情时

Sound *s = new Sound();
alGenBuffers(1, s->buffer);
alGenSources(1, s->source);

它会抛出错误.. 在这些函数中传递一个简单的 unsigned int * 变量它可以工作,但我想要一个面向对象的风格。

我做错了什么?我什至尝试使用 getter 和 setter,但抛出了同样的错误..

谢谢

编辑:抱歉,我在此处复制代码时打错了字,它是 s->buffer 和 s->source

抛出错误:project.exe 0xC0000005 中的 0x00894E93 未处理异常;读取 0x00000000 时访问违规

最佳答案

您正在向每个函数传递一个空指针。相反,您需要一个指向 unsigned int 变量的指针,该变量将用于存储结果。 (一般来说,他们想要一个指向数组的指针;但在这种情况下,您只是为每个数组创建一个,因此每个变量一个变量就足够了。)

class Sound {
public:
unsigned int source;
unsigned int buffer;
};

alGenBuffers(1, &s->buffer);
alGenSources(1, &s->source);

关于c++ - 访问 OpenAL 缓冲区的公共(public)对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27356860/

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