ViVi Home > 技術文書 > ポインタ入門 > 文字列クラス > reserve(sz)


 

 

C/C++ ポインタ入門 > 文字列クラス > reserve(sz)
Nobuhide Tsuda
Jan-2014

reserve(sz):

void String::reserve(int sz)
{
    if( sz <= capacity() ) return;
    while( m_allocSize < sz + 1 )      // 1 for '\0'
        m_allocSize *= 2;
    char *data = new char[m_allocSize];
    for (int  i = 0; i <= m_size; ++i) {  // '\0' も含めてコピー
        data[i] = m_data[i];
    }
    delete [] m_data;
    m_data = data;
}

解説:

 


前: | 次: