在没有动态内存分配(即堆)特性的情况下,除了C和C++之外,还有其他语言可以显式使用吗?在一些关键任务的嵌入式系统中,禁止使用堆来消除可能连续运行多年的软件的内存泄漏问题。我看过一些函数式语言,即和的嵌入式强调,但这两种语言似乎都与垃圾收集器一起使用堆。和也使用垃圾收集器,尽管存在静态类型,而且显然Python、Ruby和其他动态类型化语言严重依赖垃圾收集和堆空间。
any 高级语言<
如果没有使用其他堆,则进程堆用于分配块。
语言运行时还可以在进程中创建单独的堆。(例如,C运行时创建自己的堆。)( a) C/C++运行时(CRT)分配器:提供malloc()和free()以及新操作符和删除操作符。( c) CRT创建自己的私有堆,该堆驻留在Windows堆之上。我们创建的每个DLL和exe都有自己的堆</
在像"C# In a Nutshell“这样的书中,在堆栈和堆上分配的内容很快就会被介绍。然而,标准"Programming Principles and Practice Using C++“和cppreference.com等C++资源从来没有提到过关于内存分配的堆栈或堆--甚至在讨论存储持续时间在所有编程语言中,堆栈和堆的使用是否都是相同的?如果后者是真的,我会理解在哪里分配不同的实体缺乏覆盖率。