Rubyについて Part 33 ..
337:デフォルトの名無しさん
08/12/20 23:05:44
>>330
> 勝手な想像では
> Stringは内部ではNULL終端されたCのバイト列で文字列を保持していて
> その直後には文字列の拡張に備えたある程度のバッファの残りがあり
> 実際の文字列長や、バッファ全体の大きさ等がセットになった構造だろうと思ってました
昔はそうだったんだけど、前田さんがstringをcopy-on-writeにしようといって変更になった
はず。俺の記憶が正しければ。
> なので、pack('p')されたら、とりあえず引数で渡されたString内部の
> 文字列直後のバッファを\x0\x0\x0\x0で埋めとけばいいと思うのです
> もしバッファがぎりぎりで余裕が無くても、バッファを拡張してでも埋めればいい
terminatorをmin len確保する、というのも考えたんだけど
StringValueCStr()とpack('p')だけ、というのもありかもね。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5503日前に更新/99 KB
担当:undef