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

FreeBASIC Erase

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

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

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

配列を消す命令文

構文:
declare sub Erase ( array as any [, ... ] )

用法:
Erase ( array0 [, array1 ... arrayN ] )

パラメタ:
array
抹消する配列。

記述:
Erase を固定長配列で使うと、割り当てられたメモリを解放せずに、すべての要素が消去(再初期化)されます。
オブジェクトの場合は、破壊して、それから再構築されます。

Erase を可変長配列(すでにサイズ設定されている配列)で使うと、配列要素に割り当てられたメモリは解放されます。ただし、配列は同じスコープレベル(同じデータ型と次元数)で宣言されたままであり、各次元の上限/下限値のみがリセットされます(-1/0)。
オブジェクトの場合は、メモリを解放する前に、破壊されます。

注: Erase は、手続きのパラメータとして渡される、固定サイズの配列では、使えません。
FreeBASIC では、これはコンパイル時には通過しますが、実行時の結果は未定義です(クラッシュします)。


例:
Dim MyArray1(1 To 10) As Integer
ReDim MyArray2(1 To 10) As Integer

Erase MyArray1, MyArray2


一次元配列の前後の結果を示す例:
Dim MyArray1(1 To 10) As Integer
ReDim MyArray2(1 To 10) As Integer

Print "MyArray1", LBound( MyArray1 ), UBound( MyArray1 ) ' prints: MyArray1       1             10
Print "MyArray2", LBound( MyArray2 ), UBound( MyArray2 ) ' prints: MyArray2       1             10

Erase MyArray1, MyArray2

Print "MyArray1", LBound( MyArray1 ), UBound( MyArray1 ) ' prints: MyArray1       1             10
Print "MyArray2", LBound( MyArray2 ), UBound( MyArray2 ) ' prints: MyArray2       0            -1
Sleep


多次元配列の前後の結果を示す例:
Dim MyArray1(1 To 3, 4 To 9) As Integer
ReDim MyArray2(1 To 3, 4 To 9) As Integer

Print , "LOWER", "UPPER"
Print "MyArray1", _
      LBound( MyArray1, 1 ); ", "; LBound( MyArray1, 2 ), _
      UBound( MyArray1, 1 ); ", "; UBound( MyArray1, 2 )
Print "MyArray2", _
      LBound( MyArray2, 1 ); ", "; LBound( MyArray2, 2 ), _
      UBound( MyArray2, 1 ); ", "; UBound( MyArray2, 2 )

Erase MyArray1, MyArray2

Print
Print "MyArray1", _
      LBound( MyArray1, 1 ); ", "; LBound( MyArray1, 2 ), _
      UBound( MyArray1, 1 ); ", "; UBound( MyArray1, 2 )
Print "MyArray2", _
      LBound( MyArray2, 1 ); ", "; LBound( MyArray2, 2 ), _
      UBound( MyArray2, 1 ); ", "; UBound( MyArray2, 2 )
Sleep


上記の例は次のように出力します:
              LOWER         UPPER
MyArray1       1,  4         3,  9
MyArray2       1,  4         3,  9

MyArray1       1,  4         3,  9
MyArray2       0,  0        -1, -1

QBからの違い:

参照:

配列関連に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2021-05-12 03:52:49
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

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

表示-非営利-継承