全局的std::string

如果放一个全局的string:

std::string g_my_string_obj = "aaaaa";

会发生什么?

 

 

一些STL的实现,为了减少malloc的次数,预先留空间,

所以没有调用内存分配函数。

也有一些会调用malloc。

何时调用? 在main函数之前。

 

 

如果自己定义了allocator,

std::basic_string< CHAR_TYPE, TRAITS, User_Allocator >

 

那么User_Allocator必须保证先初始化:

一般是在首次调用User_Allocator::alloc()的时候。

 

不然,行为不确定:

预留空间的STL实现,可能一切正常,

但换一套STL恐怕就有问题。

或者加长字符串,也会有问题。

 

出现什么样的问题? 一般是在main之前崩溃(这也是最好的)。

 

怎么定位? 

自己写一个入口函数user_startup,调用运行库定义的入口函数MainCRTStartup。

加一个seh嵌套。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值