Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Оголошення масивів в області динамічної пам’яті

Весь масив можна розмістити в області динамічної пам’яті. Для цього при оголошені масиву використовується оператор new. Результатом є вказівник на простір пам’яті, де і буде розміщений массив.

Наприклад,

 

Cat *Family = new Cat[500];

 

Family буде вказувати на перший елемент масиву з 500 об’єктів класу Cat.

Перевагою такого способу використання масиву є можливість арифметичних операцій над вказівниками для доступу до кожного елементу масиву.

Наприклад,

 

Cat *Family = new Cat[500];

Cat *pCat = Family; // pCat вказує на Family[0]

pCat -> SetAge (10); // присвоїти Family[0] значення 10

pCat++; // перейти до Family[1]

pCat->SetAge(20); // присвоїти Family[1] значення 20

 

Вказівник на масив та масив вказівників

Розглянемо наступні три оголошення:

 

Cat FamilyOne[500];

Cat *FamilyTwo[500];

Cat *FamilyThree = new Cat[500];

 

FamilyOne – це масив з 500 об’єктів класу Cat, FamilyTwo – масив з 500 вказівників на об’єкти класу Cat, FamilyThree – вказівник на масив з 500 об’єктів класу Cat, це є адреса першого елемента масиву як і FamilyOne.

Різниця між цими оголошеннями суттєва. FamilyThree є варіантом FamilyOne, а від FamilyTwo відрізняється принципово. Ім’я масиву є постійним вказівником на перший елемент масиву.

 

Видалення масиву з динамічної пам’яті

Видалення масиву з динамічної пам’яті відбувається за допомогою оператора delete:

delete [ ] Family;

Видалення масиву автоматично повертає всю виділену для нього пам’ять. Якщо це був масив об’єктів, то при видалені його для кожного об’єкту буде викликатись деструктор. Якщо операторі deleteбудуть відсутні квадратні дужки, то буде звільнений лише перший об’єкт масиву.

Якщо масив був оголошений в області динамічної пам’яті, то для доступу до його елементів використовується оператор крапки:

 

Cat *Family = new Cat[500];

Family [i].SetAge(20);

 

Масиви символів

Розглянемо два записи:

char G[ ] = { ‘H’, ‘e’, ‘l’, ‘l’, ’o’,’\0’} ;

char G[ ] = “Hello”;

У другому записі замість окремих одинарних лапок, що розділені комами та окремих фігурних дужок, застосовуються лише подвійні лапки. Не потрібно добавляти символ закінчення рядка, компілятор зробить це сам.

Мова С++ наслідувала від С бібліотеку функцій для стрічкових операцій. Існує багато вбудованих функцій.

strcpy( String2, String1); - копіює все вмістиме String1 в String2.

strncpy(String2, String1, Max); - копіює Max символів зі String1 в String2.

 




Переглядів: 142

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.