VC6.0中deque的erase函数的问题
VC6.0中deque的erase函数的问题:
看下面的代码:
struct AA
{
char szBuf[1400+1];
int a;
};
void test()
{
std::deque<AA> myDeque;
AA myAA;
strcpy(myAA.szBuf,"123456789");
myAA.a = strlen(myAA.szBuf);
myDeque.push_back(myAA);
int i = myDeque.size();
std::deque<AA>::iterator it = myDeque.begin();
myDeque.erase(it);//设断点调试到这一步就完蛋了,但编译没有问题.如果把结构AA中的szbuf改小一点,比如说小于1300,就不会出现错误.
i = myDeque.size();
}
我的环境是VC6.0sp6,在VC6.0sp6中出现上面的问题:结构中的buf大于一定值,并且deque中只有一个元素时,用erase就会出错.
我用VS2008运行上面的代码,没有出现错误,把buf大小改的更大,也不会报错,不知道这是什么问题?