Что нового

Есть ли функция обнуляющая (затирающая) значения во всем массиве?

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Необходимо простым способом удалить значения во всем массиве, не прибегая к прописыванию значения каждой переменной. Если это конечно предусмотрено синтаксисом?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Переинициализируй его без присвоения значений
Код:
#include <array.au3>
$N = 5
Dim $Array[$N] = [1, 2, 3 ,4, 5]
_ArrayDisplay($Array)
Dim $Array[$N]
_ArrayDisplay($Array)
 

AZJIO

Меценат
Меценат
Сообщения
2 752
Репутация
1 149
Из справки Dim / Global / Local / Const

Для освобождения выделенной массиву памяти достаточно присвоить его названию (как простой переменной) любое значение, например нуль:

$array = 0
 

SyDr

Сидра
Сообщения
651
Репутация
158
Мне показалось, что автор имел ввиду именно значения в массиве, а не сам массив.

Если это так, то это уже не смешно.
Код:
For $nCount = 0 To UBound($Array) - 1
$Array[$nCount]=0
Next
 
Автор
K

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Kaster сказал(а):
Переинициализируй его без присвоения значений
Код:
#include <array.au3>
$N = 5
Dim $Array[$N] = [1, 2, 3 ,4, 5]
_ArrayDisplay($Array)
Dim $Array[$N]
_ArrayDisplay($Array)
Действительно, это пожалуй самый простой способ. А память не мусорится от таких вот действий?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Kalisnik [?]
Действительно, это пожалуй самый простой способ. А память не мусорится от таких вот действий?
нет. нечем мусориться. в памяти сидят всего лишь одна переменная $N и один массив $Array. после переинициализации массив потерял свои старые значения
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
Kalisnik [?]
Необходимо простым способом удалить значения во всем массиве, не прибегая к прописыванию значения каждой переменной
Я делаю обычно так:
Код:
$Array = 0
Dim $Array[$Count]
 
Верх