C++ SDL#u GetWindowPosition()不';t更新int指针

C++ SDL#u GetWindowPosition()不';t更新int指针,c++,sdl,C++,Sdl,我正试图按照youtube上的教程学习SDL。但是当我尝试使用SDL_GetWindowPosition()和SDL_GetWindowSize()时,它似乎没有更新int* 这是我的密码: #include <iostream> #include "include/SDL2/SDL.h" using namespace std; void CreateWindow(SDL_Window *win){ win = SDL_CreateWindow("Title",

我正试图按照youtube上的教程学习SDL。但是当我尝试使用SDL_GetWindowPosition()和SDL_GetWindowSize()时,它似乎没有更新int*

这是我的密码:

#include <iostream>
#include "include/SDL2/SDL.h"

using namespace std;

void CreateWindow(SDL_Window *win){
    win = SDL_CreateWindow("Title",
                           SDL_WINDOWPOS_UNDEFINED,
                           SDL_WINDOWPOS_UNDEFINED,
                           800, 600,
                           SDL_WINDOW_RESIZABLE);

    if (win == nullptr)
        cout<<"Could not create window.\n"<<SDL_GetError()<<'\n';
}

void QuitWindow(SDL_Window *win){
//    SDL_Delay(3000); // 3 seconds
    SDL_DestroyWindow(win);
    SDL_Quit();
}

int main(int argc, char* argv[]) {
    // initialize window
    SDL_Init( SDL_INIT_EVERYTHING );
    SDL_Window *win = nullptr;
    CreateWindow(win);


    // main loop
    SDL_Event event;
    bool run = true;
    while (run){
        int x, y, w, h;
        while (SDL_PollEvent(&event)){
            if (event.type == SDL_QUIT){
                run = false;
                QuitWindow(win);
                break;
            }
        }

        SDL_GetWindowPosition(win, &x, &y);
        SDL_GetWindowSize(win, &w, &h);
        cout<<x<<','<<y<<" ; "<<w<<','<<h<<endl;

    }

    return 0;
}
#包括
#包括“include/SDL2/SDL.h”
使用名称空间std;
void CreateWindow(SDL_Window*win){
win=SDL_CreateWindow(“标题”,
SDL_窗口位置未定义,
SDL_窗口位置未定义,
800, 600,
SDL_窗口(可调整大小);
如果(win==nullptr)

coutPass指针通过引用:
SDL_Window*&win
。现在
CreateWindow
中的指针是按值传递的,因此您修改此指针的本地副本,指针的原始值不受影响。我将CreateWindow(win);更改为CreateWindow(*&win);但退出Window(win)后得到了类似的结果;工作正常。当我按“X”时,窗口将关闭。在函数定义中进行此修改,而不是在调用函数时。
void CreateWindow(SDL_window*&win)
通过引用传递指针:
SDL\u Window*&win
。现在
CreateWindow
中的指针是通过值传递的,因此您修改此指针的本地副本,指针的原始值不受影响。我将CreateWindow(win);更改为CreateWindow(*&win);但退出Window(win)后得到了类似的结果;工作正常。当我按“X”时,窗口将关闭。在函数定义中进行此修改,而不是在调用函数时。
void CreateWindow(SDL\u window*&win)