This教程使用从main返回的代码,而不先破坏任何资源指针:
int main(int argc, char** argv){
if (SDL_Init(SDL_INIT_EVERYTHING) == -1){
std::cout << SDL_GetError() << std::endl;
return 1;
}
window = SDL_CreateWindow("Lesson 2", SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
if (window == nullptr){
std::cout << SDL_GetError() << std::endl;
return 2; //this
}
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED
| SDL_RENDERER_PRESENTVSYNC);
if (renderer == nullptr){
std::cout << SDL_GetError() << std::endl;
return 3; //and this too
}
在退出之前,我应该告诉我的终止函数是DestroyRenderer,DestroyWindow,DestroyTexture等吗?
答案 0 :(得分:2)
同样的问题'我应该释放我在退出程序之前分配的内存'。是的,如果SDL / X11 / GL /等没有错误。敲定代码 - 无论如何都将被释放。但我认为你不应该自己想要这样做。
当然如果你崩溃而不是退出 - 很有可能会有一些事情无法完成,例如您不会将显示返回到本机桌面分辨率。
答案 1 :(得分:0)
我个人遇到过SDL_TEXTURE问题,导致程序运行时发生内存泄漏,并且在程序通常使用37 mb的ram泄漏大约2gb的RAM之后,图片的显示才停止。
import pandas as pd
data={'Color': ['Blue','Green','Yellow','Purple','Orange'],
'Number':[20,21,19,18,40],
'Code':['ss','dd','dd','xx','tt'],
'Flag':[1,1,0,1,0]}
df=pd.DataFrame(data)
print(df)
my_list=list(df.iloc[2])
print(my_list)
每次我以前用渲染器显示另一张图片并且内存泄漏消失时,都这样称呼