【发布时间】:2019-08-06 06:20:37
【问题描述】:
在诸如“C# in a Nutshell”之类的书中,很快就介绍了在堆栈和堆上分配的内容。然而,诸如“Programming Principles and Practice Using C++”、标准和 cppreference.com 之类的 C++ 资源从未提及有关内存分配的堆栈或堆——即使他们谈论存储持续时间/类时也没有提及。为什么是这样?它是特定于实现的,在所有编程语言之间分配的位置或堆栈和堆的使用是否相同?如果后者是真的,我会理解没有涵盖不同实体的分配位置。
【问题讨论】:
-
C# 和 C++ 之间的区别在于,C# 针对的是非常小的平台集,其中堆栈和堆都确实存在。相反,C++ 更加通用,它的创建者并不想将其可移植性限制在此类平台上。
-
因为存在没有堆栈和堆的实现。对于普通的 C 和 C++ 嵌入式系统来说,没有堆是正常的。甚至还有一些非常低端的 8 苦味没有堆栈,但得到了 C 编译器的支持。
标签: c++ memory-management heap-memory stack-memory