Цитата(SasaVitebsk @ Nov 19 2006, 23:37)

Доброго времени суток.
Стоит задача оптимизировать использование оперативной памяти.
Такой вопрос. Например имеется переменные x,y,z и п/п A и В. П/п В вызывается из А и только из неё. Переменные используются только в этих двух процедурах и за пределами этих процедур в них нет необходимости. В файле имеются другие п/п.
Если переменные объявить следующем образом:
int x,y,z;
int B(void)
{
}
int A(void)
{
}
То будет ли освобождаться память из под переменных после выхода из A.
Или каков аналог в Си конструкции Pascal
procedure A;
var x,y,z : integer;
procedure B;
begin
end;
begin
end;
По-моему, такие глобальные переменные будут занимать память постоянно. Если уж нужно экономить память, то я бы в процедуру B передавал бы ссылку на объявленные в процедуре А переменные.
int B(int *Px, int *Py, int *Pz) {
}
int A(void) {
int x,y,z;
int *Px = &x, int *Py = &y, int *Pz = &z;
....
int i = B(Px,Py,Pz);
}