タグ

tipsとstlに関するbeakmarkのブックマーク (1)

  • 株式会社エス・スリー・フォー » テンポラリ・バッファとしての std::vector の利用

    テンポラリ・バッファとしての std::vector の利用 悩ましきテンポラリ・バッファ 一時的に必要となる領域、すなわちテンポラリ・バッファはプログラムのいたるところで用いられます。 void f() { char buffer[256]; ... } 上の例では256[char]のbufferをautomatic領域に確保しています。 場合によってはこのような固定サイズではなく、可変長のテンポラリ・バッファを必要とします。可変長のテンポラリ・バッファが必要なとき、通常opeartor newによってヒープ領域から確保するでしょう。 void f() { char* buffer = new char[N]; // Nは変数 ... delete[] buffer; } 当然のことながら、operator newによってヒープから確保した領域は、利用後速やかにoperator dele

    beakmark
    beakmark 2008/06/10
    「buffer.size() == 0 のとき、 &buffer[0] の値は不定となります」←これを踏んだバグにちょっと悩まされたorz
  • 1