返回一个静态变量作为引用,直接作为指针传递给另一个函数会发生什么?显然,变量在函数返回后保持不变,但是关于这个整体概念的事情只是困扰着我.在这个时候是数据上的内存,由静态变量占用,释放?运行时神奇地注意到,当我不再需要它,像某种垃圾收集?
举个例子:
SDL_Rect* XSDL_RectConstr(int x,int y,int w,int h) { static SDL_Rect rect; rect.x = x; rect.y = y; rect.w = w; rect.h = h; return ▭ } void mainLoop() { while(isRunning) { pollEvents(); SDL_BlitSurface(someSurface,XSDL_RectConstr(0,100,100),screen,NULL); SDL_Flip(screen); } }
SDL_BlitSurface()返回后会发生什么事情?我看不到什么时候会被释放那么这不是一种内存泄漏吗?