• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

[warning] Unit9.pas(228): Variable 'position' Might Not Have B

  • Автор темы Автор темы dima_lamo
  • Дата начала Дата начала
D

dima_lamo

[Warning] Unit9.pas(228): Variable 'position' might not have been initialized

Чё эт за фигня??? Компилятор прогу компилирует, но пишет это
 
В ряде случаев компилятор полагает, что эта переменная в момент её первого использования может быть не инициализирована. Например:
if sender=nil then position := 100 else position := 200;
должно быть нормально, а вот
if sender=nil then position := 100;
if sender<>nil then position := 200;

по идее даст предупреждение.
Разумеется, это о неверных (по сути) срабатываниях.
 
Но глюков в проге нет... Буду смотреть чё за нафиг и исправлять...
 
Я к этому и стремлюсь... компилятор без причины орать не будет...
 
Для: dima_lamo
это очень опасная ситуация с точки зрения работы программы
Пример
Код:
Var mydim	: TStringList;
i: integer;
s: string;
Begin
s:='';
IF s <> '' Then
Begin
mydim:=TStringList.Create;
mydim.Text:=s;
End;
i:=mydim.Count; 

End;
вот и смотри что буде если передать в функцию пустое значение :( как обычно Access Violation.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab