Partilhar via


CSimpleStringT::GetBufferSetLength

Retorna um ponteiro para o buffer interno de caractere para a CSimpleStringT objeto, truncando ou crescimento seu comprimento, se necessário, para coincidir com o comprimento especificado na nLength.

PXSTR GetBufferSetLength(
   int nLength
);

Parâmetros

  • nLength
    O dimensionar exato do CSimpleStringT buffer de caractere em caractere.

Valor de retorno

A PXSTR ponteiro para o buffer de caractere (terminação nula) do objeto.

Comentários

telefonar Esse método para recuperar um período especificado do buffer interno do CSimpleStringT objeto. O retornadoPXSTR o ponteiro não é Const e, portanto, permite a modificação direta do CSimpleStringT Sumário.

Se você usar o ponteiro retornado por GetBufferSetLength para alterar o Sumário de seqüência de caracteres, talvez você precise telefonar ReleaseBuffer antes de usar qualquer Outros CSimpleStringT métodos de membro.

O endereço retornado por GetBufferSetLength pode não ser válida após a telefonar para ReleaseBuffer porque adicionais CSimpleStringT as operações podem fazer com que o CSimpleStringT buffer para ser realocado. O buffer não é reatribuído se você não alterar o comprimento do CSimpleStringT.

A memória de buffer é automaticamente liberada quando o CSimpleStringT objeto é destruído.

Se você controla o tamanho da seqüência de caracteres por conta própria, você não deve acrescentar o caractere nulo de terminação.Entretanto, você deve especificar o tamanho final da seqüência de caracteres quando você liberar o buffer com ReleaseBuffer. Se você acrescentar um caractere nulo de terminação quando você telefonar ReleaseBuffer, você deve passar – 1 (padrão) para a duração para ReleaseBuffer, e ReleaseBuffer executará um strlen em buffer para determinar seu comprimento.

Para obter mais informações sobre contagem de referência, consulte os seguintes artigos:

Exemplo

O exemplo a seguir demonstra o uso de CSimpleStringT::GetBufferSetLength.

CSimpleString str(pMgr);
LPTSTR pstr = str.GetBufferSetLength(3);
pstr[0] = _T('C');
pstr[1] = _T('u');
pstr[2] = _T('p');

// No need for trailing zero or call to ReleaseBuffer()
// because GetBufferSetLength() set it for us.

str += _T(" soccer is best!");
ASSERT(_tcscmp(str, _T("Cup soccer is best!")) == 0);   

Requisitos

Cabeçalho: atlsimpstr.h

Consulte também

Referência

Classe CSimpleStringT

CSimpleStringT::GetBuffer

CSimpleStringT::ReleaseBuffer

Outros recursos

CSimpleStringT membros