Пишу простенький редактор кода. В функцию Init() передаю три указателя на структуры.
int main(int agrc, char* argv[]) {
//initialisation
SDL_Init(SDL_INIT_EVERYTHING);
TTF_Init();
SDL_Window* window;
SDL_Renderer* renderer;
MyWindow* myWindow;
Init(window, renderer, myWindow);
std::vector<std::string> settings = LoadSettings();
std::vector<ButtonWithLabel> menu_bar = LoadMenu();
while (!myWindow->_exit) {
Draw(window, renderer, myWindow);
Input(window, renderer, myWindow);
}
return 0;
}
Функция Init():
void Init(SDL_Window* window,
SDL_Renderer* renderer,
MyWindow* myWindow) {
float dpi;
SDL_GetDisplayDPI(0, &dpi, &dpi, &dpi);
float coefficient = 128 / dpi;
SDL_DisplayMode dm;
SDL_GetDisplayMode(0, 0, &dm);
window = SDL_CreateWindow("F*ckThisIDE",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
dm.w * 0.4,
dm.h * 0.4,
SDL_WINDOW_RESIZABLE);
renderer = SDL_CreateRenderer(window, 1,
SDL_RENDERER_PRESENTVSYNC);
myWindow = CreateMyWindow(CreateEditor(), coefficient);
}
В функции Init() структур имеют значения, но после выхода из неё, они удаляются. Как сделать, чтобы значения структур остались в куче?