Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Как очистить массив?

Страниц (1): [1]
 

1. Twincode - 06 Ноября, 2018 - 17:03:10 - перейти к сообщению
Здравствуйте, подскажите как правильно очистить массив для повторного использования в коде.
Сейчас очищаю вручную,
 Цитата:
int a[2];
...код...
a[0] = 0;
a[1] = 0;
...код...

Понимаю, что можно циклом, но может есть ещё более простой способ?
2. Kibor - 06 Ноября, 2018 - 17:15:15 - перейти к сообщению
Спец функции для иницианизирования переменных массива нет.
3. Zireael - 06 Ноября, 2018 - 18:50:16 - перейти к сообщению
https://drive.google.com/open?id...1sTpsAjOqunqD5Fr
Скачать dll, положить рядом с kibor.exe.
CODE:
// dll положить рядом с kibor.exe
external(VOID, "init", "init", pathfolder()+"init.dll");
int a[10];
init(address(#a[0]), sizearray(a), 0); // инициализировать массив единицами
messagebox(a[8]);


int b[800][600]; // массив 800*600
init(address(#b[0][0]), sizearray(b)*sizearray(b[]), 255); // инициализировать двухмерный массив числом 255
visualwindow(0, 0, 0, sizearray(b), sizearray(b[]), 100, 100, 100, #b[0][0]);
sleep(3000);
update(-1);
4. Dantes3000 - 06 Ноября, 2018 - 19:33:40 - перейти к сообщению
CODE:
int b[10];

b[1]=1;
b[2]=1111;
b[3]=2;
b[5]=21;
b[7]=31;


messagebox(format(b[1])+" "+format(b[4])+" "+format(b[3]));
clear_array(#b[0]);
messagebox(format(b[1])+" "+format(b[4])+" "+format(b[3]));


function clear_array(int #s)
{
for(int k=0; k<sizearray(b); k++) s[k]=0;
}


Только для каждой переменной надо свою функцию делать. Вот перекочевал бы из с++ в Кибор такой функционал как auto, было бы другое дело.
5. Zireael - 07 Ноября, 2018 - 02:39:29 - перейти к сообщению
 Цитата:
Только для каждой переменной надо свою функцию делать.

Зачем?
CODE:
int b[10];

b[1]=1;
b[2]=1111;
b[3]=2;
b[5]=21;
b[7]=31;

messagebox(format(b[1])+" "+format(b[4])+" "+format(b[3]));
clear_array(#b[0], sizearray(b)); // передаём указатель на массив и размер массива
messagebox(format(b[1])+" "+format(b[4])+" "+format(b[3]));

function clear_array(int #s, int size_s)
{
for(int k=0; k<size_s; k++) s[k]=0;
}


Если кто-то не понял, то длл нужна если массив большой.
6. Dantes3000 - 07 Ноября, 2018 - 04:16:01 - перейти к сообщению
 Zireael пишет:
Зачем?

Ну...может и незачем Голливудская улыбка но auto нужен всё равно.

Powered by ExBB FM 1.0 Final