PDA

Просмотр полной версии : [Вопрос] память сервер pragma



NooB.pwn
04.03.2015, 23:23
у меня такой вопрос...
Вот с оптимизацией ячеек.

new stringer13[100];
mysql_format(connects,stringer13,sizeof(stringer13),"UPDATE `business` SET bPribil = '%d' WHERE bID = %d",BizInfo[BizEnter[playerid]][bPribil],BizEnter[playerid]);
mysql_tquery(connects,stringer13);


new stringer13[100];
Мне тут что надо подсчитывать? вот эти символы?
"UPDATE `business` SET bPribil = '%d' WHERE bID = %d", или полностью?

L0ndl3m
04.03.2015, 23:38
static const some_message[] = "UPDATE `business` SET bPribil = '%d' WHERE bID = %d";
new some_string[sizeof(some_message) - (-2 * 2) + 12 * 2];

Так куда проще подсчитать, рассказываю:
Создаём строковой массив, который создаётся в памяти всего лишь один раз.
Создаём массив с размерами:


sizeof(some_message) // получаем полный размер массива some_message
Вычитаем из длины строки some_message это: (-2 * 2) + 12 * 2.
-2 умножаем на два, так как символы %d занимают в итоге 4 символа
( -2 написал для удобства, чтобы понять, что мы хотим визуально отнять от длины строки ).
Далее прибавляем два раза по 11, так как 11 - максимальная длина числа: -2147483647, а этих числа два.


Или считайте сами, далее там где идентификаторы:

%d, %i, %f, etc.
отнимаете два, далее прибавляете сколько вам нужно, в данном случае вам нужно прибавить 11, так как идентификатор: число.

BaBuIIIkaDrifteR
05.03.2015, 00:51
А символ %s или {%06x} считаются?

- - - Добавлено - - -

А символ %s или {%06x} считаются?

L0ndl3m
05.03.2015, 17:48
В %s вычитаете 2, а в %06x - четыре.