Вниз
Скачать: 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.007 c
11-1197285366
Vinum
2007-12-10 14:16
2009.02.15
Как сделать PaintBox?


2-1231418330
bioss
2009-01-08 15:38
2009.02.15
Как перевести каретку в начало текстового файла?


15-1229513156
rulee
2008-12-17 14:25
2009.02.15
Ураааааааааа я этой ночью стал отцом.


15-1229613114
Andy BitOff
2008-12-18 18:11
2009.02.15
DevExpress и BandedView или как-то по другому.


6-1198858897
Jimmy
2007-12-28 19:21
2009.02.15
Игра через интернет




   Наверх