Форум: "Основная";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];
ВнизTLIST Найти похожие ветки
← →
c0pYc@t (2002-08-05 09:39) [0]Читаю книгу, а там примерчик
var
List: TList;
Item: Pointer;
Value: Integer;
........
List := TList.Create;
Item := New(Value); //Ошибка здесь
List.Add(Item);
List.Remove(Item);
Dispose(Item);
List.Free;
Подскажите что здесь не так?
← →
Юрий Зотов (2002-08-05 09:47) [1]var
List: TList;
Item: ^Integer; //!!!
........
List := TList.Create;
New(Item); // !!!
List.Add(Item);
List.Remove(Item);
Dispose(Item);
List.Free;
Детали см в справке (New procedure)
P.S. Это кто ж такие книжки пишет?
← →
c0pYc@t (2002-08-05 09:49) [2]В В Фаронов Delphi6
← →
Lord Warlock (2002-08-05 09:53) [3]Гм, придумалась извращенческая конструкция:
var List: TList;
Item: Pointer;
Value: Integer;
begin
List:=TList.Create;
Value:=10;
Item:=@Value;
List.Add(Item);
ShowMessage(IntToStr(Integer(List.Items[0]^)));
List.Remove(Item);
List.Free;
end;
Просьба покритиковать.
← →
Юрий Зотов (2002-08-05 09:55) [4]Странно. Раньше за Фароновым такого не замечалось. Надеюсь, просто случайная опечатка.
← →
MBo (2002-08-05 10:03) [5]>Lord Warlock
локальная переменная value исчезает при выходе их проц., куда указывает Item?
здесь, конечно, и список локальный, но все же...
← →
c0pYc@t (2002-08-05 10:26) [6]чего то я совсем с памятью запутался
вот код
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
List: TList;
Item: ^Integer;
implementation
{$R *.dfm}
begin
List := TList.Create;
Item^ := 10;
New(Item);
List.Add(Item);
{
showmessage(inttostr(list.Items[0])); как мне теперь добраться до элемента?
}
List.Remove(Item);
Dispose(Item);
List.Free;
end.
← →
MBo (2002-08-05 10:47) [7]>Item^ := 10;
>New(Item);
наоборот!
New(Item);
Item^ := 10;
List.Add(Item);
showmessage(inttostr(PInteger(list.Items[i])));
← →
Виктор Щербаков (2002-08-05 10:48) [8]
> Item^ := 10;
Что же ты делаешь? Указатель-то не инициализирован!
Вернее инициализирован nil"ом. А обращение к памяти по этому адресу приводит к AV!
← →
c0pYc@t (2002-08-05 12:33) [9]спасибо, глупые ошибки допускаю :(
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c