String的+=运算符返回-1073741819错误
string decode(int *data,Btree *code)
{
string buffer="";
Btree *t=code;
for(int i=0;data[i]!=-1;i++)
{
cout<<data[i];
t=t->child[data[i]];
if (t->data!=-1)
{
char ch=(t->data);
cout<<':'<<ch;
cout<<':'<<buffer<<endl;
t=code;
buffer+=ch;
}
};
return buffer;
};
以上是出错的函数,其中三条Cout语句是出错后加进去的调试信息,code是指向一颗哈夫曼树根结点的指针
执行后程序输出:
11:t:
001:e:t
101:s:te
Process returned -1073741819 (0xC0000005) execution time : 2.234 s
Press any key to continue.
然后在前面加入
buffer+='t';
buffer+='t';
buffer+='t';
后发现只要buffer执行三次+=运算就会出错
请问如何解决?