void CString::AllocBuffer(int nLen)
{
assert(nLen >= 0);
assert(nLen <= 2147483647-1); // (signed) int 的最大值 2G
if (nLen == 0)
Init();
else
{
CStringData* pData;
{
pData = (CStringData*)
new BYTE[sizeof(CStringData) + (nLen+1)*sizeof(TCHAR)];
pData->nAllocLength = nLen;
}
pData->nRefs = 1;
pData->data()[nLen] = '\0';
pData->nDataLength = nLen;
m_pchData = pData->data();
}
}
转载于:https://www.cnblogs.com/peijihui/archive/2010/08/12/1798255.html