Как правильно объявить большую текстовую переменную -
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 не выгружается из памяти после использования.