我正在实现一个多模字符串过滤的算法,在添加关键字的时候出错,析构的时候出错了,第一次构造析构都行,第二次的时候构造成功,到析构的时候变量tmpNode所指TCHAR*数组vPattern的各个汉字字符的Unicode编码编程了一个统一值:56797。我把tmpNode做成一个指针也不行。大家帮我看看,谢了。BOOL CScanString::AddScanerSeed(TCHAR* tstr,float iRank)
{
int iStrSize = _tcslen(tstr);
// TCHAR* tmpstr = new TCHAR[iStrSize + 1];
// _tcscpy(tmpstr, tstr);
CPatternNode tmpNode;
tmpNode.SetPatternNode(tstr,iRank);
// int i = this->vPatternVector.size();
this->vPatternVector.push_back(tmpNode);//STL的vector,为vector<CPatternNode>
// i = this->vPatternVector.size();
if (iStrSize < this->iMiniSize)
iMiniSize = iStrSize;
return TRUE;//CPatternNode类
CPatternNode::CPatternNode()
{
this->iRank = 0;
this->vPattren = NULL;
}CPatternNode::~CPatternNode()
{
if(this->vPattren != NULL)
delete [] this->vPattren;
}void CPatternNode::SetPatternNode(TCHAR * tSetStr,float iSetValue)
{
if(tSetStr != NULL)
{
this->iRank = iSetValue;
this->vPattren = new TCHAR[_tcslen(tSetStr) + 1];
_tcscpy(this->vPattren,tSetStr);
}
}
}
{
int iStrSize = _tcslen(tstr);
// TCHAR* tmpstr = new TCHAR[iStrSize + 1];
// _tcscpy(tmpstr, tstr);
CPatternNode tmpNode;
tmpNode.SetPatternNode(tstr,iRank);
// int i = this->vPatternVector.size();
this->vPatternVector.push_back(tmpNode);//STL的vector,为vector<CPatternNode>
// i = this->vPatternVector.size();
if (iStrSize < this->iMiniSize)
iMiniSize = iStrSize;
return TRUE;//CPatternNode类
CPatternNode::CPatternNode()
{
this->iRank = 0;
this->vPattren = NULL;
}CPatternNode::~CPatternNode()
{
if(this->vPattren != NULL)
delete [] this->vPattren;
}void CPatternNode::SetPatternNode(TCHAR * tSetStr,float iSetValue)
{
if(tSetStr != NULL)
{
this->iRank = iSetValue;
this->vPattren = new TCHAR[_tcslen(tSetStr) + 1];
_tcscpy(this->vPattren,tSetStr);
}
}
}
解决方案 »
- 请问下berkeley db是如何加密的
- VC设置条件断点
- 求大家帮我分析下下面的ftp代码,里面有一句实在看不明白,最好耐心解释下整个代码啊,谢
- Vc++界面编程
- 程序调用的DLL
- 救救我!
- 这里有上海的朋友没有?
- 急急急急 vc6.0或vc.net 如何做com组件(上传组件) 在线等待 进者都有分 贡献出我所有分
- 各位大侠,谁有《矢量图形系统开发与编程》作者:陈建春,《Visual C++开发GIS系统(第2版)》作者:陈建春,
- VS2017中MFC项目无法显示资源视图
- "0x00415df0"指令引用的"0x00c6d000"内存。该内存不能为"read"
- 今天 发 过节费啦 是过去公司的 2 倍
不要定义成对象,定义成对象指针试试。
CPatternNode *ptmpNode = new CPatternNode ;