Ver Mensaje Individual
  #2  
Antiguo 22-12-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Reputación: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
No queda muy claro el planteamiento, pero quizá sirva de algo aclarar que la función SizeOf no regresa el tamaño de una matriz (número de elementos) sino el monto de bytes que ocupa una variable o tipo de dato. Las variables de tipo matriz dinámica (como rbuf y fbuf, en tu código) son simples punteros hacia la región de memoria donde se almacena la matriz en sí. Y, como todo puntero estándar, su tamaño es de 32 bits (4 bytes).

Si quieres obtener la cantidad de elementos de una matriz, usa la función Length.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
  A :Array Of Integer;
begin
  SetLength (A, 10);
  ShowMessage (IntToStr (SizeOf (A)));  // 4, tamaño del puntero A
  ShowMessage (IntToStr (Length (A)));  // 10, cantidad de elementos de A
end;

Saludos.

Al González.
Responder Con Cita