PDA

Просмотр полной версии : [Вопрос] Как заполнить массив?



nitecore
06.04.2021, 18:55
Всем привет. Такой вопрос, как заполнить массив определенным числом без использования цикла.

new array[20];

Видел что-то подобное:

array = { -1, ... };

Но к сожалению выдает ошибку

Shaolinka
06.04.2021, 19:01
Что за ошибку выдает?

nitecore
06.04.2021, 19:06
error 029: invalid expression, assumed zero
error 047: array sizes do not match, or destination array is too small

Shaolinka
06.04.2021, 19:10
Покажи, как объявляешь. Напоминаю, что заполнить массив таким образом, можно лишь во-время объявления.

nitecore
06.04.2021, 19:14
Покажи, как объявляешь. Напоминаю, что заполнить массив таким образом, можно лишь во-время объявления.

оу, вот в чем дело. спасибо, я понял. а больше нет способов? чтобы, скажем, перезаполнить потом

Shaolinka
06.04.2021, 19:15
Only loop

DeimoS
07.04.2021, 04:59
new array[20] = {-1, ...};
new const NULL_array[sizeof(array)] = {-1, ...};

И когда нужно будет "обнулить" массив:
array = NULL_array;

Pro_Coder
07.04.2021, 11:58
Ксати, еще что касаемо
array = { -1, ... }
можно так

array = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
Ну это уже так сказать для любителя, и ваше цикл использую, для меня в этом месте не оптимизация

DeimoS
07.04.2021, 12:55
Ксати, еще что касаемо
array = { -1, ... }
можно так

array = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
Ну это уже так сказать для любителя, и ваше цикл использую, для меня в этом месте не оптимизация

Этот вариант, по сути, ничем не отличается от моего варианта :) Вся разница лишь в том, что в моём случае массив создаётся явно, а в твоём - нет. Ну и в моём случае можно будет сколько угодно раз обнулять массив в разных участках кода и лишняя память, при этом, выделяться не будет, а в твоём случае на каждый отдельный случай будет создаваться свой массив. Ну это если грубо говоря