FreeBASIC マニュアルのトップに戻る

FreeBASIC Preserve

目次→実行時ライブラリー参考→配列関連PRESERVE←オリジナル・サイト

PRESERVE 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

配列のサイズを変更するときに、Redim と一緒に使って、配列の内容を保持するように指定します。

構文:
redim Preserve array(...) [as datatype]

記述:
Redim と共に使うと、配列のサイズを変更するときに、データは、リセットされずに、保持されます。
これは、配列のサイズを拡大するとき、その新しいデータ部分だけがリセットされることを意味します。
古いデータ部分は、同じままで残っています。(ただしメモリの絶対アドレスは、同じとは限りません。)

注意:
Redim Preserve は、すべての場合で、予想されるように働くとはかぎりません。:

Preserveの現在の動作は、メモリ内で元のデータを連続したままに保って、メモリのサイズを拡大または切り捨てるだけです。
(サイズ変更が不可能な場合は、最初に、元のデータブロック全体が別のメモリ位置に移動されます。)
その動作(1次元で)は、上限が変更された場合にのみ明確に定義されます。
下限が変更された場合、現在の結果は、データが新しい下限で開始するように効果的にシフトされます。

複数の次元の場合、安全に変更できるのは、最初の次元の上限だけです。
最初の次元が縮小されると、既存のマッピング可能なデータが失われる可能性があります。
下位次元のサイズを変更すると、結果は予測できません。
(多次元配列は、行優先順序で格納されるからです。異なる値が連続しているのは最後のインデックスだけです。)

例:
ReDim array(1 To 3) As Integer
Dim i As Integer

array(1) = 10
array(2) = 5
array(3) = 8

ReDim Preserve array (1 To 10)

For i = 1 To 10
    Print "array("; i; ") = "; array (i)
Next
Sleep



QBからの違い:

参照:

配列関連に戻る
←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2017-08-12 09:48:36
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

ホームページのトップに戻る

表示-非営利-継承