Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.46 MB
Время: 0.007 c
1-48200
Queen
2002-08-02 23:22
2002.08.15
indy


1-48036
V.Turecky
2002-08-03 15:31
2002.08.15
Как организовать выход по Esc?


3-47999
lety
2002-07-26 22:19
2002.08.15
фильтрация в dbf


1-48150
Man-In-Red
2002-08-01 15:39
2002.08.15
Помогите пожалуйста!


3-47943
SuperVK
2002-07-25 09:56
2002.08.15
Произвольная cортировка в DBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский