> >だから、「動的配列はポインタだ」という事だけ気をつけておけば
> >いいのでしょうか?
>
> だからか,どうかは分かりませんが (^^;
> 私的な立場では... ホホホッ.
誤解されると困るので,一応.
以下も動的配列といいますが,これは,代入できません.
([DCC エラー] Unit1.pas(64): E2008 互換性の無い型です) となります.
procedure TForm1.Button1Click(Sender: TObject);
var
Array1 : array of Integer;
Array2 : array of Integer;
begin
// array1の確保と変更
SetLength(Array1, 10);
SetLength(Array2, 10);
Array2 := Array1; //これはエラー
この代入が可能なのは,type 節で定義した型やクラスのインスタンスです.
(コンポーネントもクラスです)
または,String 型や Integer 型のような単純な型 (?) の同じ型の変数同志です.
例えば,TIntegerDynArray は次のように定義されています.
type
TIntegerDynArray = array of Integer;
ちょっ前のスレッドにありましたが,HQUERY もそうです.
HQUERY は Type で宣言されています.そのため,型が違うというエラーに
なったわけです.
type で前言した「型」は,実はポインタということですね.
|