読者です 読者をやめる 読者になる 読者になる

"The Apache Modules Book" 中のサンプルコードのバグ

PRENTICE HALLから出ている本なんだけども、"3.5.4.1 Arrays" で書かれている以下のコード

apr_array_header_t* arr = apr_array_make(pool, sz, sizeof(my_type));
(snip)
/* Iterate over all elements */
for (i = 0; i < arr->nelts; i++) {
  /* A C++ reference is the clearest way to show this */
  my_type& elt = arr->elts[i];
}

apr_array_header_tのeltsはchar*なので

  my_type& elt = arr->elts[i * sizeof(my_type)];

とでも書かないといけないような気がする。昼休みの間にどこに伝えればよいか探したのだけど見つからなかったので仕方なくここに。

というか、そもそもイテレートさせるのにstructのメンバにアクセスさせるしか手が無いのはどうよとおもう。