русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Операція new


Дата додавання: 2014-04-22; переглядів: 1070.


С++ пропонує інший підхід до виділення пам’яті: операцію new. Це універсальна операція, що одержує пам’ять в операційної системи і повертає вказівник на початок виділеного блоку. В програмі 12.15 показано, як це працює.

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

#include<string.h>

 

int main()

{clrscr();

char* str="Пробна фраза";

int len=strlen(str); //довжина рядка

char* ptr;

ptr=new char[len+1];//виділення памяті

strcpy(ptr,str);

cout<<"ptr="<<ptr<<endl;

delete[]ptr;//вивільнення памяті

bioskey(0);

return 0;

}

Програма 12.15

 

 

Вираз

ptr=new char[len+1];

присвоює змінній ptr значення адреси блоку пам’яті, достатнього для зберігання рядка str, довжину якого можна визначити, використовуючи бібліотечну функцію strlen() плюс додатковий байт для символа кінця рядка.

Далі на рисунку показаний синтаксис операції new.

 

 

В цьому прикладі ми використали функцію strcpy() для копіювання рядка str у виділену ділянку пам’яті, на яку вказує вказівник ptr. Рядок повністю займе цю ділянку пам’яті, оскільки її розмір дорівнює довжині рядка.

 


<== попередня лекція | наступна лекція ==>
Масив вказівників на рядки | Операція delete


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн