[Delphi]静的配列から、動的配列にコピーする


静的配列→動的配列
にCopy関数は使えない。

だからループで回した。
本来はポインタの出番なのだろう。

以下はテストコードと実行結果

//NOTE ==============================================
// Title      : TEST_COPY_ARRAY
//==================================================
// License    : MIT
// Author     : Penguin-Works
// Make       : 2013/07/08
// Finish     : 2013/07/08
// LastSave   : 2013/07/08
//==================================================
// Abstruct   :
//  静的配列から、動的配列のコピー
//==================================================
program TEST_COPY_ARRAY;

{$APPTYPE CONSOLE}
{$R *.res}

uses
    System.SysUtils;

var
    array_origin: array [ 0 .. 3 ] of Integer = ( 1, 2, 3, 4 ); // コピー元
    array_copy  : array of Integer; // コピー先

    i: Integer;

begin
    try
        // 要素数の割り当て
        SetLength( array_copy, length( array_origin ) );

        // コンソールのヘッダ
        Writeln( 'Origin:Copy' );
        Writeln( '-----------' );

        // 要素数の確認
        Writeln( 'length' );
        Writeln( IntToStr( length( array_origin ) ) + ':' + IntToStr( length( array_copy ) ) );
        Writeln( '-----------' );

        for i := 0 to length( array_copy ) - 1 do
        begin

            // ループで配列をコピー
            array_copy[ i ] := array_origin[ i ];

            // アウトプット
            Writeln( IntToStr( array_origin[ i ] ) + ' : ' + IntToStr( array_copy[ i ] ) );

        end;

    finally
        Readln;
    end;

end.
  
実行結果:
Origin:Copy
-----------
length
4:4
-----------
1 : 1
2 : 2
3 : 3
4 : 4