问一个new和delete的问题,请进来看看~!
Search_space类:构造函数:
Search_space(congst char*s, char sep)
{
assert(s != NULL);
int len = strlen(s);
buf = new char[len+1];//new 出来一个buf
if ( buf == NULL )
{
return;
}
memset(buf, 0, len+1);
strncpy(buf, s, len);
separetor = sep;
}
析构函数:~Search_space{
delete buf;
buf = NULL;
}
使用这个类:Search_space *st = new Search_space(string, ' ');//string为源字符串,查找空格
用完后:delete st; st = NULL;
在BCB中使用CodeGuard错误提示在析构函数中delete buf 这里。
*.cgl中的记录:Error 00094. 0x310010 (Thread 0x0964):
Bad parameter: A bad object array (0xA77138) has been passed to the function.
delete[](0x00A77138)
这个问题是什么原因?怎么解决?谢谢,由于是新手,所以可用分数比较少,各位别介意。