GCC compiling issue [Werror=alloc-size-larger-than=]

博客讨论了在使用GCC编译器时遇到的'Werror=alloc-size-larger-than='警告问题。内容指出,错误消息表示分配的内存大小超过了最大对象尺寸,提到了相关错误代码85783,并引用了一个解决方案,即通过使用static _Ty* NewArray(size_t size)来替代原本的new[]操作以解决问题。
摘要由CSDN通过智能技术生成
    template<class _Ty, class... _Types>
    static _Ty* NewArray(int32_t size)
    {
        _Ty* ptr = new (std::nothrow) _Ty[size]();
        return ptr;
    }

 error: argument 1 range [18446744071562067968, 18446744073709551615] exceeds maximum object size 9223372036854775807 [-Werror=alloc-size-larger-than=]
      _Ty* ptr = new (std::nothrow) _Ty[numElements]();

85783 – alloc-size-larger-than fires incorrectly with new[] and can't be disabled says that 

 The code was added in r190546 as a solution to prevent unsigned wrapping (when array new expression must compute the amount of space to allocate as a product of
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值