};
void main (int argc, char* argv[])
{
CBuffer buffer1;
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';
评论