stl _M_end_of_storage.allocate(__n)为NULL,__n为23272(我程序运行一段时间后),
template <class _Tp, class _Alloc> void _String_base<_Tp, _Alloc>::_M_allocate_block(size_t __n) {
if ((__n <= (max_size()+1)) && (__n>0)){
_M_start = _M_end_of_storage.allocate(__n); //NULL
_M_finish = _M_start;
_M_end_of_storage._M_data = _M_start + __n; //这里卡住
}
else
_M_throw_length_error();
stl _M_end_of_storage.allocate(__n)为NULL,__n为23272(我程序运行一段时间后),我调试到这里__n确实为23272,但是_M_end_of_storage.allocate(__n)返回为空,我机子内存还有1.5G,为什么出现这样问题?