-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
-
Похожий контент
-
От DonK/Key
Всем привет, помогите кто разбирается, так как я можно сказать начинающий сделать свой КРМП, буду благодарен. Напишите либо тут либо @evreI_sigma (Мой Telegram)
-


punkochel Новичок 0
Доброго времени суток. В теме я хочу задать 2 похожих вопроса о правильном использовании памяти.
1) Почему в перехватываемой функции значительно увеличивается размер стека?
Приведу ситуацию:
В этом случае подсчет стека идет понятно как, и тут вроде бы все правильно.
В этом случае я подключил инклуд в котором используется перехват функции OnDialogResponse в которой использовал тот-же код что и в первом случае, казалось бы, стек должен остаться прежним, так-как я не повысил размер массива, но вдруг я вижу другую цифру и теряюсь в раздумьях.
Почему произошло увеличение размера стека?
Код инклуда который я подключил:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DLG_TEST3: { new dialog[100]; format(dialog, sizeof(dialog), "%i %i %i", variable1, variable2, variable3); } case DLG_TEST4: { new dialog[100]; format(dialog, sizeof(dialog), "%i %i %i", variable1, variable2, variable3); } } #if defined test__OnDialogResponse return test__OnDialogResponse(playerid, dialogid, response, listitem, inputtext); #endif } #if defined _ALS_OnDialogResponse #undef OnDialogResponse #else #define _ALS_OnDialogResponse #endif #define OnDialogResponse test__OnDialogResponse #if defined test__OnDialogResponse forward test__OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]); #endif[/CODE][/SPOILER]2) Стоит ли в инклудах, где используется перехват функций использовать переменные static для создания массива?
Как один из вариантов решения который вроде-бы более-менее практичный (на мой взгляд):
Отредактировано пользователем punkochel
Поделиться сообщением
Ссылка на сообщение