首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

_CrtIsValidHeapPointer(pUserData)异常怎样解决

2012-09-23 
_CrtIsValidHeapPointer(pUserData)错误怎样解决class Foo {public:Foo(char *name):data(name) {}~Foo()

_CrtIsValidHeapPointer(pUserData)错误怎样解决
class Foo {
public:
Foo(char *name):data(name) {}
 ~Foo(); 
private:
char *data;
};
Foo::~Foo()
{
 if (data != NULL)
 {
 delete [] data;
 data = NULL;
 }
}
int main()
{
Foo foo("abc");

}
运行析构函数时会报_CrtIsValidHeapPointer(pUserData)错误,求高手解决啊!

[解决办法]
删除一个静态常量,当然会出错
在构造函数里new,strcpy,而不是简单地赋值
[解决办法]

C/C++ code
#include <iostream>using namespace std;class Foo {public:    Foo(char *name)    {        data = new char[strlen(name)+1];        strcpy(data,name);    }    ~Foo();  private:    char *data;};Foo::~Foo(){    if (data != NULL)    {            delete [] data;        data = NULL;    }}int main(){    Foo foo("abc");} 

热点排行