gpt4 book ai didi

c++ - 按地址返回时,这不超出范围吗? (SDL)

转载 作者:行者123 更新时间:2023-11-30 04:38:36 25 4
gpt4 key购买 nike

这是来自 lazyfoo 的 SDL 教程的代码示例。

SDL_Surface *load_image( std::string filename ) { 

//Temporary storage for the image that's loaded
SDL_Surface* loadedImage = NULL;
//The optimized image that will be used
SDL_Surface* optimizedImage = NULL;

//Load the image
loadedImage = SDL_LoadBMP( filename.c_str() );


//If nothing went wrong in loading the image
if( loadedImage != NULL ) {
//Create an optimized image
optimizedImage = SDL_DisplayFormat( loadedImage );
//Free the old image
SDL_FreeSurface( loadedImage );
}

//Return the optimized image
return optimizedImage;
}

optimizedImage返回时不应该超出范围吗?因为它是本地的。

最佳答案

是的,但不是它指向的已分配内存。它只是一个 4 字节的指针变量,唯一需要做的就是保留它的值。

值为地址。地址是以手动控制的方式分配的,释放它需要调用编译器不知道的函数。

关于c++ - 按地址返回时,这不超出范围吗? (SDL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3082751/

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