Операція new

С++ пропонує інший підхід до виділення пам’яті: операцію new. Це універсальна операція, що одержує пам’ять в операційної системи і повертає вказівник на початок виділеного блоку. В програмі 20.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;

}

Програма 20.15

 

 

Вираз

ptr=new char[len+1];

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

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

 

 

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

 








Дата добавления: 2015-08-26; просмотров: 593;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.