Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions content/russian/cs/basic-structures/array.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ int a[100];
int main() {
int b[100];
int *c = new int[100];
del[] c;
delete[] c;
return 0;
}
```
Expand All @@ -24,7 +24,7 @@ int main() {

- Определенный глобально массив `a` будет лежать в заранее выделенной области памяти на протяжении всего времени исполнения программы. Все элементы изначально заполнены своим значением по умолчанию (для `int`, нулём).
- Определенный внутри функции массив `b` будет лежать *на стеке* — специальной области памяти для временных переменных — и будет удален сразу когда функция (или любой другой блок вроде тела цикла или `if`-а) завершится. Так как размер стека исполнения ограничен, большие массивы ($>10^6$) выделять так нельзя. Изначально он заполнен чем-то случайным, что лежало на тот момент в памяти — чтобы заполнить нулями, можно написать `int x[100] = {}`. Чтобы заполнить все элементы заданными значениями, можно написать `int y[5] = {4, 8, 15, 23, 42}`.
- Определенный через оператор `new` массив `c` выделен *динамически*. Он существует, пока его специально не удалили через оператор `del[]`. Он также заполнен тем, что на тот момент лежало в памяти. В отличие от предыдущих двух вариантов, он может быть любого размера, даже неизвестного заранее.
- Определенный через оператор `new` массив `c` выделен *динамически*. Он существует, пока его специально не удалили через оператор `delete[]`. Он также заполнен тем, что на тот момент лежало в памяти. В отличие от предыдущих двух вариантов, он может быть любого размера, даже неизвестного заранее.

**Важно.** В первых двух вариантах размер массива должен быть известной на момент компиляции константой. Компилятор GCC может скомпилировать выражение вида `int a[n]`, и действительно выделится массив не-константного размера; IDE поэтому может и не подчеркнуть его, хотя это не является частью стандарта.

Expand Down