vs显示写入Sub.ch时缓冲区溢出
//1.3求字串的功能的实现
int SubString(HString& Sub, HString S, int pos, int len)//求字串
{
int n;
if (pos<0 || pos>S.length || len<0 || len>S.length - pos + 1)//出现错误的地方
{
return 0;
}
// if(Sub.ch) free(Sub.ch);
if (!len)
{
Sub.ch = NULL;
Sub.length = 0;
}
else
{
Sub.ch = (char*)malloc(len * sizeof(char));
if (Sub.ch==NULL)
{
return -1;
}
for (n = 0; n <= len-1; n++)
{
Sub.ch[n] = S.ch[pos + n - 1];
}
Sub.length = len;
}
return 1;
}
看看传进来的参数,len是多少,数组越界了。