Экспорт адреса локальной переменной.

Номер: 
55
Тип: 
Warning

Память под локальные переменные выделяется в стеке и освобождается при выходе из метода. Не имеет смысла сохранять адрес локальной переменной за пределами метода, потому что попытка его использования после выхода из метода приведёт к ошибке.

Примеры: 
function TObj.W55(i: integer; var buffer: pointer; ptb: pointer): pointer;
var
    l: integer; // Локальные переменные создаются в стеке.
    pl:pointer;
begin
  l := i;
  buffer := Addr(l); //  ссылку на них нельзя передавать наружу.
  result := @l; // И это тоже ошибка.
// А это не ошибки:
  pl := @l; 
  ass(@l);
  ptb := @l;
end;