SA-MP Forums Archive
Как правильно объявить большую текстовую переменную - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Как правильно объявить большую текстовую переменную (/showthread.php?tid=607837)



Как правильно объявить большую текстовую переменную - Josipo - 24.05.2016

Мне нужно вывести в диалоговом окне очень много текста.
Около 4000 символов.
Как правильно объявить переменную под этот текст?

Если просто делаю new text[4000];, то получается переполнение стека.


Re: Как правильно объявить большую текстовую переменную - Diman777 - 24.05.2016

Посчитай с помощью strlen и выставь не 4000, а ближе к тому числу, которое получится в strlen, или сам вычесли на крайняк.
Если компилятор будет вновь ругаться, то воспользуйся динамикой:
PHP код:
// памями выдели столько - сколько просит компилятор, пример:
#pragma dynamic 4096 



Re: Как правильно объявить большую текстовую переменную - Mcc - 24.05.2016

Quote:
Originally Posted by Josipo
Посмотреть сообщение
Как правильно объявить переменную под этот текст?
Глобальная переменная в начале мода. Ручками поднимать стек плохо.


Re: Как правильно объявить большую текстовую переменную - stabker - 24.05.2016

Quote:
Originally Posted by Mcc
Посмотреть сообщение
Глобальная переменная в начале мода. Ручками поднимать стек плохо.
Чем плохо?


Re: Как правильно объявить большую текстовую переменную - Mcc - 24.05.2016

Quote:
Originally Posted by stabker
Посмотреть сообщение
Чем плохо?
Кушаньем оперативной памяти наверное.


Re: Как правильно объявить большую текстовую переменную - ZiGGi - 25.05.2016

Можно объявить эту переменную как static, в этом случае переполнения стека не будет.


Re: Как правильно объявить большую текстовую переменную - stabker - 25.05.2016

Quote:
Originally Posted by Mcc
Посмотреть сообщение
Кушаньем оперативной памяти наверное.
Разница? Глобальный массив тоже ее займет до выключения сервера.


Re: Как правильно объявить большую текстовую переменную - Mcc - 25.05.2016

Quote:
Originally Posted by stabker
Посмотреть сообщение
Разница? Глобальный массив тоже ее займет до выключения сервера.
Статика быстрее. И предназначение у стека несколько иное по-моему, нежели хранение больших текстовых данных.


Re: Как правильно объявить большую текстовую переменную - OKStyle - 29.05.2016

И static не выгружается из памяти после использования.