| Сравнение работы с памятью в разных языках |
4 |
| Описание |
C++ Builder Visual C++ |
Borland C# C# .NET |
Jscript |
J# Java |
PHP |
Perl |
VBasic .Net |
VBScript |
Delphi |
PL\SQL Transact-SQL |
VFP |
| Небезопасный код |
|
unsafe { … } unsafe описание_функции |
|
|
|
|
|
|
|
|
|
|
| Ссылки |
|
| Создание ссылки |
тип & имя = перем |
Нет! |
$имя = & $перем |
тип & имя = перем |
Нет! |
|
Нет! |
| Отмена ссылки |
|
|
unset($имя) |
|
|
| Указатели на память |
|
|
Нет! |
|
Нет! |
| Объявление указателя |
тип * имя [= перем] |
var имя1,…,имя2:^тип |
| Иницилизац.указателя |
имя [= перем] |
имя = @переменная |
| Разыменование указ. |
… * указатель |
...переменная^ |
| Константный указатель |
тип * const имя |
|
| Указатель на константу |
const тип * имя ... |
|
| Указатель на функцию |
тип (* имя) (аргументы) |
|
| Вызов функ динамичес |
имя = [&] функц ([*] имя) (аргументы) |
|
| Пустой указатель |
NULL |
null |
|
| Общий указатель |
|
|
|
| Закрепленный объект |
|
fixed (тип* имя = выражение) {опр-ы} |
|
| Неопределенное знач. |
null |
|
|
|
|
null |
|
null |
null |
.Null. |
| Динамическая память |
|
| Выделение памяти |
указатель = new [::] [размещение] тип[[размер]] |
переменная = new класс ([аргументы]) |
переменная = new [ конструктор [(аргументы)] |
|
$переменная = new класс ([аргументы]) |
|
переменная = new класс ([аргументы]) |
new(указатель) или new(указатель,размер) |
|
|
|
| Очистка памяти |
delete [[]] имя; |
|
|
|
|
|
|
dispose(указатель) или freemem(указатель,[размер]) |
|
| Размещеный оператор |
указатель = new(перем) имя (размер,пар-ры) |
|
|
|
|
|
|
|
|
| Удален.размещен.опр |
~имя |
|
|
|
|
|
|
|
|
| Клонирование объекта |
|
|
|
|
$переменная = clone $переменная |
|
|
|
|
|
|
|