在哪里可以找到C 中新运营商的确切实现
Where can one find the exact implementation of operator new in C++?
有时会通过malloc实现新运营商,在嵌入式系统中可以找到它的确切实现,运行说raspbian。
在哪里可以找到C 中新运营商的确切实现?
您会在C 标准库的源代码中找到。这是libstdc 的一个:
_GLIBCXX_WEAK_DEFINITION void *
operator new (std::size_t sz) _GLIBCXX_THROW (std::bad_alloc)
{
void *p;
/* malloc (0) is unpredictable; avoid it. */
if (sz == 0)
sz = 1;
while (__builtin_expect ((p = malloc (sz)) == 0, false))
{
new_handler handler = std::get_new_handler ();
if (! handler)
_GLIBCXX_THROW_OR_ABORT(bad_alloc());
handler ();
}
return p;
}
如您所见,在这种情况下是用malloc
实施的。
在嵌入式系统中
嵌入式系统的标准库通常是 freesting ,因此不一定提供malloc
或new
。
运行说raspbian。
raspbian几乎是一个完全爆炸的操作系统。默认情况下,它将使用libstdc 。
相关文章:
- 呼叫运营商<<临时
- 两个运营商的一些奇怪的冲突<<
- 如何在 CPP 中访问家长的运营商
- 如何明确调用好友流运营商
- 私有运营商删除会触发 GCC 和 Clang 的编译时错误,但不会在 MSVC 上触发编译时错误
- 使用运营商New分配的数据结构是否有任何副作用
- "Inheriting"移动运营商?
- 朋友ostream&运营商<<无法访问私人会员
- 为什么在下面的代码返回类型中是用于运营商重载的类类型
- 范围的枚举(枚举类)关系运营商
- 为什么“操作员”需要const但不是为“运营商&lt;”
- 对这两个分配运营商之间的不同感到困惑
- 我的班级意外加法运营商
- OpenACC - C++"新"运营商问题
- c 对运营商的一致性是新的,有多少重要
- 为什么我不能使私人运营商成为新的并使用默认实现?
- 全球取代所有新运营商
- 包装C 朋友在Cython中的非会员运营商
- 在哪里可以找到C 中新运营商的确切实现
- 运营商加在C++11中应该如何实现