#define LEN_CHART_NAME 25
int _tmain(int argc, _TCHAR* argv[])
{
char info1[125] ="000MyChartName2345678901234567890";
CStringA name;
char* str = NULL;
char name_array[LEN_CHART_NAME];
memset(name_array, 0, LEN_CHART_NAME);
str = name.GetBuffer(LEN_CHART_NAME + 1);
strncpy(str, &(chart_info1[3]), LEN_CHART_NAME);
// str[LEN_CHART_NAME] = '\0';
name.ReleaseBuffer();
name.TrimRight();
strncpy(name_array, name, name.GetLength());
}
问题1 - 行是否为[str [LEN_CHART_NAME] ='\ 0';如果我以后只使用name_array打包到更长的字符串是必要的吗?
问题2 - 我需要name.ReleaseBuffer()吗?我认为名称记忆将在超出范围时被释放。
问题3 - 如果我包含str [LEN_CHART_NAME] ='\ 0';行,是否需要更改name.ReleaseBuffer(); to name.ReleaseBuffer(-1);?