О производительности динамических массивов...

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: О производительности динамических массивов...

Сообщение zub » 26.09.2022 20:47:15

>>то имитация динамического массива с GetMem/FreeMem под капотом.
это и есть классический чассив. а ты про что подумал?
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: О производительности динамических массивов...

Сообщение iskander » 26.09.2022 21:27:57

zub писал(а):а ты про что подумал?

Так это я как раз хотел у тебя уточнить. Вот дока говорит что есть два типа массивов, статические и динамические. Который из них классический?
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: О производительности динамических массивов...

Сообщение zub » 26.09.2022 21:38:41

Да, что я неясно выражаюсь. Классический=статический в моей голове))
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: О производительности динамических массивов...

Сообщение iskander » 26.09.2022 22:08:15

zub писал(а):Классический=статический в моей голове))

Ага, я почему-то именно так и подумал. Тем не менее, сколько я ни смотрел в код этого поделия, никаких следов статических массивов там не обнаружил.
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: О производительности динамических массивов...

Сообщение zub » 27.09.2022 01:04:17

Выделение памяти, доступ через индексацию указателя - тот же статический массив
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: О производительности динамических массивов...

Сообщение iskander » 27.09.2022 09:49:36

zub писал(а):Выделение памяти, доступ через индексацию указателя - тот же статический массив

Да не, это просто путаница, конечно. Статический массив это тип данных, фиксирующий тип элемента, размерность, а также нижнюю и верхнюю границы индексов. И для переменной этого типа не требуется ручного выделения памяти.
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: О производительности динамических массивов...

Сообщение zub » 27.09.2022 13:42:23

>>Статический массив это тип данных, фиксирующий тип элемента, размерность, а также нижнюю и верхнюю границы индексов.
>>И для переменной этого типа не требуется ручного выделения памяти.
??
Код: Выделить всё
program Project1;
const
  ElemCount=1000;
type
  PMyArr=^TMyArr;
  TMyArr=array [0..0] of Integer;
var
  PArr:PMyArr;
  i:Integer;
begin
  PArr:=GetMem(ElemCount*SizeOf(TMyArr[0]));
  for i:=0 to ElemCount-1 do
    PArr^[i]:=i;
  for i:=0 to ElemCount-1 do
    WriteLn(PArr^[i]);
  Freemem(PArr);
  readln;
end.
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: О производительности динамических массивов...

Сообщение iskander » 27.09.2022 14:27:56

Да не, статический массив это
Код: Выделить всё
program Project1;
const
  ElemCount=1000;
type
  TMyArr=array [1..ElemCount] of Integer;
var
  Arr:TMyArr;
  i:Integer;
begin
  for i:=1 to ElemCount do
    Arr[i]:=i;
  for i:=1 to ElemCount do
    WriteLn(Arr[i]);
  readln;
end.

А то что у тебя, это грязный хак для получения индексированного доступа к памяти в куче, придуманный во времена отсутствия динамических массивов.
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: О производительности динамических массивов...

Сообщение zub » 27.09.2022 14:47:32

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

Это и есть классика))
В той самоделке все чуток в си стиле сделано, воттак:
Код: Выделить всё
program Project1;
const
  ElemCount=1000;
type
  PMyArr=^Integer;
var
  PArr:PMyArr;
  i:Integer;
begin
  PArr:=GetMem(ElemCount*SizeOf(PMyArr^));
  for i:=0 to ElemCount-1 do
    PArr[i]:=i;
  for i:=0 to ElemCount-1 do
    WriteLn(PArr[i]);
  Freemem(PArr);
  readln;
end.


зы. самоденлка эта сделана очень продумано. рекомендую
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Пред.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

Рейтинг@Mail.ru