Просмотр полной версии : [Вопрос] Вопрос про string
DmitriyVasilev
06.03.2019, 17:45
Здравствуйте, объясните зачем обнулять тут переменную, я просто не шарю и когда надо их обнулять. Спасибо:search:
case 1755:
{
if(!response) return 1;
string = ""; //вот тут
for(new i = 1; i <= TotalBizz; i++)
{
if(BizzInfo[i][bType] != listitem+1) continue;
format(YCMDstr,128,"{FFFFFF}%s {0076FC}%i вирт\n",BizzInfo[i][bMessage], BizzInfo[i][bPrice]);
strcat(string,YCMDstr);
}
return ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX, !"Мониторинг бизнесов",string, !"x", "");
}
strcat объединяет строки, если не отчистить string, то перед той строкой что тебе нужно будет то что было в string.
Допустим в string находился следующий текст: Админ Dima228 кикнул Dime227
То если не отчищать string и использовать твой код то получиться что-то вроде этого:
Админ Dima228 кикнул Dime227Сообщение бизнесу $1488
Сообщение бизнесу 2$1489
Во-первых, почитай вот это (http://pro-pawn.ru/showthread.php?16533-%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81-%D0%BF%D0%BE-Stack-heap-size&p=92930&viewfull=1#post92930).
Во-вторых, если всё же решишься дальше использовать глобальную переменную, то отчищать её нужно только тогда, когда используются функции, которые этого не делают (strcat и т.п.) или когда ты скрепляешь массив через format:
// Вот тут если не отчистить и string будет глобальной переменной, то каждый раз к новой строке будет прикрепляться старый текст
format(string, sizeof(string), "%s привет!", string);
//Вот в этом случае отчищать уже не нужно, так как format начнёт запись с нулевой ячейки и сама перезапишет старый текст
format(string, sizeof(string), "%s привет!", player_name);
DmitriyVasilev
30.03.2019, 17:03
те если я здесь поставлю локальную переменную, то обнулять ее не нужно?
те если я здесь поставлю локальную переменную, то обнулять ее не нужно?
не нужно.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot