buffer1.SaveString("Microsoft");
printf(buffer1.GetBuffer());
}
主要改正 SaveString 函数
void SaveString(const char* pText) const
{
strcpy(m_pBuffer, pText);
}
改为
void SaveString(const char* pText) (1)
{
Allocte(strlen(pText)+1); (2)
strcpy(m_pBuffer, pText);
}
原因:
( 1
) const 成员 函数表示 不会修改 数据成员 ,而 SaveString 做不到, 去掉 const 声
明
(2)m_pBuffer 指向 NULL,必须用 Allocte 分配空间才能赋值。
(3
) 另外需要将 Allocte 成员函数声明为私有成员函数更符合实际
2
“
、下来程序想打印 Welcome MSR Asia”,改正错误
#include <stdio.h>
#include <string.h>
char * GetName (void)
{
//To return “MSR Asia” String
char name[]="MSR Asia";
return name;
}
void main(int argc, char* argv[])
{
char name[32];
//Fill in zeros into name
for(int i=0;i<=32;i++)
{
name[i]='\0';
}
//copy “Welcome” to name
name="Welcome";
//Append a blank char
name[8]=" ";
//Append string to name
strcat(name,GetName());
//print out
printf(name);