Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.15;
Скачать: 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 вся ветка

Текущий архив: 2009.02.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
15-1229609835
Добежал
2008-12-18 17:17
2009.02.15
Политика NT - хранить настройки программы отдельно от программы


11-1196085008
Barloggg
2007-11-26 16:50
2009.02.15
Как сделать скрытую форму


2-1209619132
FoxikM
2008-05-01 09:18
2009.02.15
Как копировать файлы с "неправильным" именем


15-1229754617
SPeller
2008-12-20 09:30
2009.02.15
Когда омона и милиции столько же, сколько митингующих


15-1229536053
БарЛог
2008-12-17 20:47
2009.02.15
Инвентаризация железа на компьютерах в домене по сети