Операція 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; просмотров: 650;