А с каких ты решаешь "как правильно"? Есть два варианта способных на жизнь, и какой из них "правильный" - каждый решает для себя сам. Ты сейчас утверждаешь "как тебе удобнее" - поэтому твои слова, ничем не отличаются от моих слов.
Какие к черту в 3 раза больше памяти? Добавление памяти напрямую в сегмент данных, эквивалентно добавлению памяти к стэку. Я не потрачу лишней памяти. Лишняя память будет уходить в твоем случае (по скольку память придется выделять под каждую новую букву). А память из стэка будет более рациональна использована.
Какие к черту "старые моды"? В старых модах, наоборот таки, использовался твой вариант с локальным массивом на все случае жизни, только они, как правило, ничего не считали и выделяли везде 256 ячеек. Я говорю про современные моды, сегодняшних гигантов, открой исходники гамбита и что мы там увидим? Мой вариант, который я предлагал выше:
Конечно, тут абсурдная трата памяти, но чем не вариант.PHP код:
new
g_small_string [ 256 ],
g_string [ 1024 ],
g_big_string [ 2048 ];
Не буду говорить лишних слов, просто прокомментирую "плюсы" которые ты назвал:
1) А стэк не находится в сегменте данных? Ты тратишь такую же память сегмента данных, только выделенную под стэк, при этом потратишь еще больше, добавляя памяти в стэк. И кажется, я уже об этом говорил. На всякий случае повторю, что способ с локальных массивами в итоге потратит намного больше памяти, чем 2 - 3 массива на все случае. Думаю говорить почему не нужно, да?
2) Когда код засорен инициализацией нового массива при каждом формате - такая себе логичность и читабельность. А если у тебя есть выделенный под формат отдельный массив, и назван подобающе - ты сразу понимаешь почему и зачем. И для этого не нужно овер999 массивов в одном участке кода.
3) Если ты единственный разработчик геймплея - еще один сомнительный "плюс", если разработчиков много - я говорил выше, что в таких модах нужно писать автономные участки кода, что бы скриптеру не приходилось собирать одну систему из всего мода. Но таких модов нет, ведь все моды пишутся "для себя", как правило, одним человеком.
На минуту отвлекусь и замечу, что здесь ты все правильно сказал, что разницы про использование методов не будет, а дальше ты говорил абсурдные вещи. Довольно странно. Но опять же, замечу в третий раз, что твой способ в итоге потратит больше памяти, нежели мой. причем разница будет существенная, но сейчас не об этом. "захлебнеться" я сказал потому, что в таком моде через каждую строчку будет инициализироваться очередной массив, чтобы, например, отправить в чат "Приветствую тебя на моей сервера ...".