* ptr = PtrData.new(addr, [size = 0, free = nil])
#   * returns the PtrData object representing the pointer which indicates the
#     address addr. GC frees the memory using the free function.

  * ɥ쥹 addr ؤݥ󥿤 PtrData ֥Ȥ֤
    GC  free ؿѤƥ롣

* PtrData#free=(sym)
#   * If you specify a symbol object sym, GC frees the memory using the function
#     represented by sym.

  * ܥ륪֥ sym ꤷ硢GC  sym ؿ
    Ȥäƥ롣

* sym = PtrData#free
#   * returns a symbol object sym which is used when GC frees the memory. it
#     usually configured by `PtrData#free=' or `PtrData.new'.

  * GC Τ˻Ѥ륷ܥ륪֥ sym ֤
    sym  `PtrData#free='  `PtrData.new' ˤäꤵ롣

* size = PtrData#size, PtrData#size=(size)
#   * gets and sets allocated size of the memory.
  *  size Ƥꤹ롣

* ary = PtrData#to_a(type, [size])
#   * returns an array of the type which specified with type. type must be one of
#     'S','P','I','L','D' and 'F'.

  * type ǻꤵ줿֤type  'S','P','I','L','D' 
     'F' Τ줫

* str = PtrData#to_s([len])
#   * returns a string which length is len. if len is omitted, the end of the
#     string is '\0'.

  * Ĺ len ʸ֤len άϡʸν '\0'

* ptr = PtrData#ptr,+@
#   * returns the pointed value as a PtrData object ptr.

  * ݥ󥿤ؤͤ PtrData ֥ ptr ֤(:)
    (:PtrDataؤͤݥ󥿤ǤȤơPtrData ˤ֤())

* ptr = PtrData#ref,-@
#   * returns the reference as a PtrData object ptr.

  * Ȥ PtrData ֥ ptr ֤(:)
    (:PtrDataؤλȤPtrData ˤ֤())
    (:PtrDataؤݥ󥿤PtrData ˤ֤())

* ptr = PtrData#+
#   * returns the PtrData object

  * PtrData ֥Ȥ֤(: ХȤ­ 
    PtrData ֥Ȥ֤)

* ptr = PtrData#-
#   * returns the PtrData object

  * PtrData ֥Ȥ֤(: ХȤ 
    PtrData ֥Ȥ֤)

* PtrData#struct!(type, *members)
#   * defines the data type to get access to a structure member with a symbol.
#     (see also PtrData#[])

  * ¤ΥФ򥷥ܥǥǡ(PtrData#[]
    ⻲)

* PtrData#union!(type, *members)
#   * defines the data type to get access to a union member with a symbol. (see
#     also PtrData#[])

  * ΥФ򥷥ܥǥǡ(PtrData#[]
    ⻲)

* val = PtrData#[key], PtrData#[key, num = 0]
#   * if the key is a string or symbol, this method returns the value of the
#     structure/union member which has the type defined by PtrData#
#     {struct!,union!}. if the key is a integer value and this object represents
#     the pointer ptr, it returns the value of `(ptr + key).to_s(num)'

  * key ʸ䥷ܥʤ顢Υ᥽åɤϹ¤/ΥФ
    ֤ PtrData#{struct!,union!} ˤä줿ġ
    key ǤΥ֥Ȥݥ ptr ʤ顢`(ptr +
    key).to_s(num)' ֤ͤ

* PtrData#[key,num]=val, PtrData#[key]=val
#   * if the key is a string or symbol, this method substitute the value of the
#     structure/union member with val. if the key is a integer value and val is a
#     string, this method copies num bytes of val to the memory area ptr using
#     memcpy(3).

  * key ʸ䥷ܥʤ顢Υ᥽åɤϹ¤/ΥФ
     val ˤ롣key  val ʸʤ memcpy(3) Ȥäƥ
    ΰ ptr ؤͤ num ХȤ򥳥ԡ롣