Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2011, 02:07   #1
kuy
Форумчанин
 
Аватар для kuy
 
Регистрация: 05.09.2011
Сообщений: 109
По умолчанию Указательные типы

Почему выдаёт ошибку? Что исправить в коде, что бы ошибки небыло?(мне нужно создать линейный динамический список)
kuy вне форума Ответить с цитированием
Старый 13.12.2011, 05:05   #2
Felian
Пользователь
 
Регистрация: 13.11.2011
Сообщений: 24
По умолчанию

procedure New(var X: Pointer);

Из справки

Создаём новую динамическую переменную и устанавливает на неё указатель P.

В коде Делфи, процедура New создаёт новую динамическую переменную и устанавливает на неё переменную-указатель. P - переменная любого указательного типа. Размер блока выделенной памяти соответствует размеру типа, на который указывает P. Новая созданная переменная может быть доступна как P^. Если недостаточно памяти для динамического выделения, возникает исключение EOutOfMemory.

В твоём случае, p является переменной типа структура, а не указатель. Наверное, так надо:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  One = ^Person;
  Person = record
    name: String[15];
    age: Byte;
    next: One;
  end;

var
  p: One;
  i: Integer;

begin
new(p);
end.
Felian вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
типы массивов в С++ Karina89 Помощь студентам 10 20.10.2011 18:27
TQuery типы Mr_skiner БД в Delphi 3 22.02.2011 22:52
Типы Skrip Общие вопросы C/C++ 5 14.06.2009 19:24
Комбинированные типы melikyan Помощь студентам 5 10.02.2009 21:41