Я следую руководству по созданию игрового движка на YouTube, в котором используется SDL.Я изучил многие вещи, связанные с C ++, и занимался более глубоким погружением, связанным с указателями (необработанными и умными), а также изучал стек и кучу.в учебнике есть небольшая функция, которая возвращает указатель.Я не понимаю, как этот указатель все еще доступен во время выполнения кода?Вот рассматриваемый код.
SDL_Texture* TextureManager::LoadTexture(const char* texture)
{
SDL_Surface* tempSurface = IMG_Load(texture);
SDL_Texture* tex = SDL_CreateTextureFromSurface(Game::renderer,
tempSurface);
SDL_FreeSurface(tempSurface);
return tex;
}
этот фрагмент кода содержит информацию об указателях повсюду ...
Теперь, чтобы узнать об этом материале, я попытался создать нечто подобное, чтобы посмотреть, как работает памятьс указателями из функции, которую я создал.
int* test() {
int num = 5;
return #
}
int main()
{
int* ptr = nullptr;
ptr = test();
std::cout << "Hello World!\n";
int testArray[5];
int i = 1;
testArray[0] = 1;
testArray[1] = 2;
}
информация об указателях уничтожается при вызове int i.Есть ли что-то, чего мне не хватает, почему это не работает так же, как функция выше?