Вниз
Скачать: CL | DM;

почему не вылетало AV ???   Найти похожие ветки 

 
девушка   (2008-12-17 08:45) [0]

Добрый день!
Сегодня задали мне вопрос по Delphi. Привели откопаный откуда-то пример работы с XML:

uses
... MSXML2_TLB;

type
TForm1 = class(TForm)
...
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
coDoc : CoDOMDocument;
Doc: IXMLDOMDocument;
begin
Doc := coDoc.Create;
Doc.load("xml.xml");
Memo1.Text:=Doc.xml;
end;

end.


Вопрос был в том: "А почему, если так запускать программа работает, а когда я объявляю coDoc : CoDOMDocument; Doc: IXMLDOMDocument; глобально, то вылетает AV???"

А вот у меня вопрос - почему AV в первом случае не вылетало???


 
Григорьев Антон ©   (2008-12-17 08:51) [1]

Потому что глобальные переменные инициализируются нулём, а если coDoc будет nil, AV гарантировано. А локальные переменные не инициализируются ничем, имеют случайные значения, и случайно может оказатьтся, что coDoc указывает на выделенную программе область памяти. Тогда AV не будет, будет какая-то другая ошибка, которая вылезет в другом месте из-за того, что вы запорете память, выделенную совсем для других целей.


 
oxffff ©   (2008-12-17 08:54) [2]


> А локальные переменные не инициализируются ничем


Не все локальные переменные одинаково полезны.


 
девушка   (2008-12-17 08:56) [3]


> Потому что глобальные переменные инициализируются нулём,
>  а если coDoc будет nil, AV гарантировано. А локальные переменные
> не инициализируются ничем, имеют случайные значения, и случайно
> может оказатьтся, что coDoc указывает на выделенную программе
> область памяти.

Точно!!! Спасибо большое



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.008 c
2-1230721519
demon
2008-12-31 14:05
2009.02.15
Как узнать создан ли класс?


15-1225125372
oxffff
2008-10-27 19:36
2009.02.15
Новости Delphi PRISM


15-1229514723
DeeNamid
2008-12-17 14:52
2009.02.15
Антивирус определяет программу как троян


2-1230627520
LDV
2008-12-30 11:58
2009.02.15
SystemMenu


11-1197220362
Elec3C
2007-12-09 20:12
2009.02.15
Drag n Drop в ListBox




   Наверх