ByteArray の null バイトの意味を理解しようとしています。彼らはターミネーターのように振る舞いますか?つまり、null バイトが書き込まれると、ByteArray にさらに書き込むことはできませんか?
例えば、
import flash.utils.*;
public class print3r{
public function print3r{
Util.print(nullout());
}
public function nullout:ByteArray (){
var bytes:ByteArray = new ByteArray();
bytes.writeInt(((403705888 + 1) - 1)); // Non Printable Characters
bytes.writeInt(((403705872 - 1) + 1)); // Non Printable Characters
bytes.writeInt(0x18101000); // Notice the NullByte in this DWORD
bytes.writeInt(0x41424344); // ASCII Characters ABCD
return bytes;
}
}
new print3r;
これにより、空白の出力が得られます。
ここで、DWORD 0x18101000 を 0x18101010 に置き換えると、出力に ASCII パディング ABCD が表示されます。
私の質問は、null バイトを超えて ByteArray() に書き込むことは可能ですか?
私が質問する理由は、ActionScript コードで、null バイトが書き込まれた後でも ByteArray に対して多くの writeInt 操作と writeByte 操作が実行されることを確認したためです。
ありがとう。