Хелпикс

Главная

Контакты

Случайная статья





<тип вказівника> *<назва> = new <тип змінної>[<кількість>];



< тип вказівника> *< назва> = new < тип змінної> [< кількість> ];

 

Після виконання цієї команди буде виділена неперервна ділянка пам'яті обсягом

 

sizeof(тип змінної) * < кількість> ;

 

і назва масиву вказуватиме на початок цієї ділянки.

З динамічною змінною можна виконувати операції, визначені для даних відповідного базового типу.

Після опрацювання масиву вивільнити пам'ять можна за допомогою команди

 

delete[] < назва вказівника на масив даних>;

 

Під час вивільнення пам'яті розмір масиву зазначати не потрібно.

Розв'яжемо задачу з прикладу 1, використовуючи динамічний розподіл пам'яті

 

int *n = new int [100]; // Виділяємо пам'ять для ста цілих чисел

  for (int S = 0, k = 0; k < 100; ){ // Опрацьовуємо массив

  *(n+k) = ++k;

S += *(n+k);

  }

delete[] n; // Вивільняємо пам'ять

 

За допомогою динамічних змінних можна розв'язати задачу почергового опрацювання одною програмою деякої кількості великих масивів (якщо всі масиви не можливо одночасно ввести у пам'ять). Задачу розв'язують так. Створюють масив, наприклад, *mas1 = new < тип> [< кількість> ] і опрацьовують динамічні змінні *mas1, *(mas1+1), ... Вивільняють пам'ять delete[] masl. Створюють й опрацьовують елементи другого масиву *mas2 = new < тип> [< кількість> ] і т. д.

 

Задача про АТС. Нехай уk - це число викликів, які надходять на АТС за k-ту секунду. Припустимо, що yk - ви­падкове число зі значенням від 0 до 30. Утворити масив у з десятьма елементами (k = 1, 2, ..., 10). Обчислити суму викликів за перші 10с роботи АТС. Визначити максимальну суму викликів, які надійшли за деяку одну секунду. Вивести результати обчислень.

Зауваження. Для того, щоб отримати ціле випадкове число п діапазону від 0 до n, можна скористатись функцією random(n), яка описана у модулі stdlib. h. Щоб під час виконання програми кожен раз отримувати різні значення, перед використанням функції random() треба записати функцію randomize().

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.