很想知道c ++中的内存部分是如何工作的

时间:2014-04-02 23:20:48

标签: c++ memory

所以我们已经知道像' block'或称为..字节的内存单位?并且不同的变量占用不同的字节数。但我真正的问题是当你创建一个新程序时,比如在编译器上,内存开始存储在地址一。使用指针你可以看到什么填充内存块?这个公羊也是吗?很抱歉,想要掌握c ++的低级部分以获得内存存储的提示等等,非常感谢。谢谢。

2 个答案:

答案 0 :(得分:2)

C ++中的对象占用内存,如果可以获取对象的地址,则可以检查该内存。完全没有说明记忆的来源和方式;它应该由“平台”提供,即编译器知道如何生成与系统的内存概念交互的机器代码,使得每个对象都适合某些内存。您还可以使用平台提供的服务(mallocoperator new)直接为您提供内存供您使用。

答案 1 :(得分:0)

malloc和operator new是用于在C ++程序中分配内存的库调用。重要的是要注意它们不是由平台提供的,它们由标准库提供。 C ++标准中指定的所有内容都是这些调用应该返回为程序代码分配的内存地址。

平台通常具有不同的API,用于从OS分配内存,例如在Linux中有mmap()和brk()系统调用,在Windows中有VirtualAlloc()系统调用。 Malloc和operator new使用这些特定于系统的系统调用来从OS请求内存,然后将它们子代码分配给程序。在OS内核本身中,这些系统调用通常会修改MMU条目(在使用MMU的体系结构上)。

相关问题