string="test string."//クローン元 p=0//クローン変数 s=""//コピー先文字列型変数 dupptr p,varptr(string),2,2//pをstringのクローン変数にする。 mes p//サイズは2Byteなので最初の2文字だけが出るのが自然 p="false" s=p; mes p//2Byte以上の書き込みはしない模様。 mes string//クローン変数によって書き換えられている。 mes s//クローン変数からクローンのサイズを超えてコピーされる。
クローン変数でサイズ以上に書き込んでしまう例。
natural=0x20110930//元の変数 p=0//クローン変数 dupptr p,varptr(natural),2,4//pをnaturalのクローン変数にする。 p=0x19950117//書き込み mes strf(" p=%8x\nnatural=%8x",p,natural)//2Byteを超えて書き込まれる
3.3RC1で確認しています。
実際にこのような実装をすることはないとは思いますが、修正をお願いします。