gpt4 book ai didi

c++ - 如何使用int指针?

转载 作者:太空宇宙 更新时间:2023-11-04 16:02:50 24 4
gpt4 key购买 nike

我有两个整数指针,用于保存 (SDL) 屏幕高度和宽度(以像素为单位)的数据。它们在这里声明:

int *w = nullptr;
int *h = nullptr;

此处给定值:

    int SDL_GetRendererOutputSize(SDL_Renderer* renderTarget, int *w, int *h);

并在这里使用:

Dest.w = (*w / 2.0f - 58 / 2.0f, *h / 2.0f - 8 / 2.0f);
Dest.h = (*w / 2.0f - 58 / 2.0f, *h / 2.0f - 8 / 2.0f);
Dest.x = (*w / 2.0f - 58 / 2.0f, *h / 2.0f - 8 / 2.0f);
Dest.y = (*w / 2.0f - 58 / 2.0f, *h / 2.0f - 8 / 2.0f);

但是 *w*h 仍然是 nullptr。这是为什么?

最佳答案

如果您正在编写一个返回多个值的函数,调用者必须提供一个指向输出将放入的变量的指针,这是 C(在某种程度上 C++)的常见做法。

因此,您可以这样调用此函数:

int w=0,h=0;

int result = SDL_GetRendererOutputSize(renderTarget, &w, &h);
if (result!=0) {
// handle an error here
}

请注意,w 和 h 是普通整数变量。我将这些变量的地址传递给 SDL_GetRendererOutputSize(& 运算符获取其参数的地址);该函数可能会设置变量。

不要忘记查询函数的返回值,在这种情况下,如果出现错误,返回值将不为零。

关于c++ - 如何使用int指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40457559/

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