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

FreeBASIC FB_MEMCOPY

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

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

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

メモリブロックの最初の部分を、ある場所から別の場所にコピーし、残りをクリアします。

構文:
declare sub fb_memcopyclear ( byref dst as any, byval dstlen as uinteger, byref src as any, byval srclen as uinteger )

用法:
fb_memcopy( dst, dstlen, src, srclen )

パラメータ:
dst
宛先メモリの開始アドレス
dstlen
書き込むバイト数
src
ソースメモリの開始アドレス
srclen
コピーする最初のバイト数(それ以降はクリアされます)

内容:
fb_memcopycopy は、指定されたバイト数(dstlen)をメモリ位置 src からメモリ位置 dst にコピーします。ただし、最初の srclen バイトのみがコピーされ、残りはクリアされます((dstlen - srclen) バイト)。
各開始アドレスは、変数または配列要素への参照から取得されます。
メモリ領域は重複してはなりません(そうでないと、特にプラットフォームによっては、正しくコピーされることが保証されません)。
オーバーフローを回避するには、srcdst の両方が指す有効なメモリ領域のサイズが、コピーするバイト数(消去されるバイトを含む)と少なくとも同じである必要があります。

ソースポインタと宛先ポインタの両方が指すオブジェクトの基になる型は、この関数には関係ありません。
この関数は、ソース領域で終了ヌル文字をチェックしません。 常に指定されたバイト数を正確にコピーします。
結果は、最初の srclen バイトのデータのバイナリコピーであり、残りのデータはゼロになります((dstlen - srclen) バイト)。

注意: Pointer によって参照されるメモリとの間でコピーするには、最初に逆参照する必要があります(または、引数の用語でポインタ名の前に Byval キーワードを指定します)。そうでないと、fb_memcopyclear は、pointer variable のメモリ位置との間でバイトをコピーしようとします。

例:
Dim src As ZString * 10 = "FreeBASIC"
Dim dst As ZString * 10 = "012345678"

Print "before:"
Print "src = " & src
Print "dst = " & dst
Print

'' 最初の 4バイトをコピーし、残りをクリアします
fb_memcopyclear(dst, SizeOf(dst), src, 4)

Print "after:"
Print "src = " & src
Print "dst = " & dst

Sleep

出力:
before:
src = FreeBASIC
dst = 012345678

after:
src = FreeBASIC
dst = Free

バージョン:
QBからの違い:
参照:
メモリ関数に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2022-06-24 01:08:45
日本語翻訳:WATANABE Makoto、原文著作者:fxm

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

表示-非営利-継承