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

FreeBASIC Callocate

目次→実行時ライブラリー参考→メモリ関数CALLOCATE←オリジナル・サイト

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

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

自由なストレージから、ある要素のための一定のメモリを割り当てて、内容をクリアします。

構文:
declare function Callocate cdecl ( byval num_elements as uinteger, byval size as uinteger = 1 ) as any ptr

用法:
result = Callocate ( num_elements [, size ] )

パラメタ:
num_elements
メモリを割り当てる、要素の数。
size
それぞれの要素の、バイトで表現されるサイズ。

戻り値:
うまくいくと、割り当てられたメモリの開始アドレスを返します。
そうでないときは、ヌルポインタ (0) を返します。

記述:
Callocate は、割り当てられたメモリを、ゼロで初期化します。
したがって、Callocate は、文字列記述子が最初に消去(0 に設定)されるため、文字列を含む StringUDT で、直接使うこともできます。
同様に、文字列データはヌル文字で作成されるため、Callocate は、ZstringWstring で直接使うこともできます。

例:
' 10の整数要素のために、スペースを割り当てて、初期化します。
Dim p As Integer Ptr = CAllocate (10, SizeOf(Integer))

' 整数値でメモリを満たします。
For index As Integer = 0 To 9
    p[index] = (index + 1) * 10
Next

' 整数値を表示します。
For index As Integer = 0 To 9
    Print p[index] ;
Next

' メモリを解放します。
Deallocate(p)

Sleep
出力:
 10 20 30 40 50 60 70 80 90 100

例2:
'Memory+WString
'https://www.freebasic.net/forum/viewtopic.php?p=291868#p291868
'by fxm ≫ Apr 27, 2022 11:24

Dim As WString Ptr w = Callocate((255-32+1) + 1, SizeOf(WString))  '' don't forget the terminal character
'終了文字を忘れないでください

For i As Long = 32 To 255
	*w & = WChr(i)
Next

Print *w

DeAllocate(w)
Sleep
出力:
出力

方言差:
QBからの違い:
参照:
メモリ関数に戻る

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

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

表示-非営利-継承