小编kin*_*ade的帖子

SDL_Init中的大内存泄漏

编辑:更新了一些新信息(Bold'ed).此外,代码和Valgrinds输出已更新.

我最近开始使用SDL2作为我的图形库.在开发了一些东西之后,我决定运行Valgrind并发现我正在泄漏记忆......很多记忆.

缩小范围后,我编译了这段代码(在C中):

#include <SDL2/SDL.h>

int main(int argc, char** argv)
{
    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_QuitSubSystem(SDL_INIT_EVERYTHING);
    SDL_Quit();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是make文件:

CC = gcc
CCFLAGS = -Wall -o0
LDFLAGS = -lSDL2
SOURCES= main.c
OBJECTS=$(SOURCES:.c=.o)
EXE = Test

.PHONY:
all: $(OBJECTS)
    $(CC) $(OBJECTS) $(CCFLAGS) $(LDFLAGS) -o $(EXE)

clean:
    rm $(OBJECTS) $(EXE)
Run Code Online (Sandbox Code Playgroud)

得到这个Valgrind错误:

==30933== Memcheck, a memory error detector
==30933== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==30933== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info …
Run Code Online (Sandbox Code Playgroud)

c++ memory-leaks sdl-2

3
推荐指数
1
解决办法
3286
查看次数

C++帮助在头文件上编写带声明的类

好吧,你好.

我是c +的新手,我遇到了一些问题,我不确定是什么导致了这些问题.这是我的主要内容:

#include "GameWindow.h"

int main(void)
{
    GameWindow * game_window = new GameWindow(true);

    /* loop the game */
    while (game_window->GetRunning())
    {
    // update
    game_window->Update();

    // draw
        game_window->Draw();
    }

    delete game_window;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是我的标题:

class GameWindow
{
private:
    bool _running;
    //GLFWwindow* _window;

public:

    void SetRunning(bool new_val);
    bool GetRunning();


    GameWindow(bool running);

    void Draw();
    void Update();
}
Run Code Online (Sandbox Code Playgroud)

和我的c ++文件:

#include "GameWindow.h"

void GameWindow::SetRunning(bool new_val)
{
    _running = new_val;
}

bool GameWindow::GetRunning()
{
    return _running;
}

GameWindow::GameWindow(bool running) :
    _running(running)
{

} …
Run Code Online (Sandbox Code Playgroud)

c++ return-value header-files

1
推荐指数
1
解决办法
827
查看次数

标签 统计

c++ ×2

header-files ×1

memory-leaks ×1

return-value ×1

sdl-2 ×1