Раздел: Стандартные функции Паскаля

Процедура New

Основы программирования 2.0 Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее...

Процедура New в Паскале выделяет память для переменной. Синтаксис:

procedure New(var P : Pointer);

procedure New(var P : Pointer; Cons : TProcedure);

Процедура New выделяет память под новый экземпляр типа, на который указывает параметр P, и помещает адрес на выделенный блок памяти в P. Если P является объектом, то во втором параметре можно указать имя конструктора, с помощью которого будет создан экземпляр.

Вновь выделенная память никак не инициализируется и может содержать мусорные данные. Она должна быть очищена с помощью вызова FillChar или FillWord.

Как поведёт себя программа, если больше нет доступной памяти, зависит от значения переменной ReturnNilIfGrowHeapfails: если переменная имеет значение TRUE, то возвращается значение NIL. Если переменная имеет значение FALSE, генерируется ошибка времени выполнения.

Пример:

program myprog;

type TMas = array[1..8] of integer; //Наш массив - новый тип данных

var i    : integer;                 //Индексная переменная
    PMas : ^TMas;                   //Указатель на наш массив

begin
  WriteLn('ReturnNilIfGrowHeapfails = ', ReturnNilIfGrowHeapfails);

  New(PMas);     //Выделить память
  //Если памяти недостаточно, то вывести сообщение,
  //если достаточно, то вывести массив
  if PMas = NIL then WriteLn('ERROR: not enough memory')
  else for i := 1 to 8 do WriteLn(PMas^[i], ' ');

  Dispose(PMas); //Освободить память
  WriteLn('Then end. Press ENTER...');
  ReadLn;
end.

На этом всё. Чтобы не пропустить новости, подключайтесь к Телеграм-каналу или к другим моим каналам и рассылкам (ссылки ниже).


Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...
Помощь в технических вопросах Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика