错在那里
class CMyClass
{
public:
int len;
int * buffer;
public:
CMyClass();
~CMyClass();
public:
void SetZero();
};
CMyClass::CMyClass()
{
len=5;
int * buffer=malloc(len);
}
CMyClass::~CMyClass()
{
free(buffer);
}
CMyClass::SetZero()
{
memset(buffer,0,len*sizeof(int));//在这里出错
}
为什么?
问题点数:100、回复次数:2Top
1 楼stonespace(stonespace)回复于 2002-10-05 16:54:56 得分 100
没有初始化数据成员buffer.初始化的是一个自动变量,构造函数退出的时候,自动变量buffer的值就丢了。
CMyClass::CMyClass()
{
len=5;
int * buffer=malloc(len);
}
改为
CMyClass::CMyClass()
{
len=5;
buffer=malloc(len);
}
Top
2 楼token_lys(token)回复于 2002-10-05 16:55:55 得分 0
谢谢Top




