-5

目前我正在学习内存管理中的C编程。

  • C 提供了哪些内存抽象?
  • 堆栈和堆之间的区别到底是什么?
  • 如何使用指针访问内存位置?
  • 如何在堆上分配和释放内存?
4

1 回答 1

2

非常简短:

  • 当函数返回时,堆栈中的变量会丢失。堆中的变量可以被任何函数访问,并且值在被释放之前不会丢失。因此,堆栈很有用,因为它们只是单个环境(函数)的“本地”。当我们需要在函数之间访问更多“全局”类型的数据时,堆是很好的。
  • int * p = 4。这意味着您已经创建了一个指向内存地址 4 的指针。
  • *p 被称为“取消引用指针 p”,它基本上指向存储在 p 中的地址。您可以执行 *p = 100 之类的操作,这意味着将值 100 存储在存储在 p 中的地址处。
  • 要在 c 中分配内存,请使用 malloc(...),可以在此处找到文档:http ://www.cplusplus.com/reference/cstdlib/malloc/
  • 释放内存,使用 free(...),文档在这里找到:http ://www.cplusplus.com/reference/cstdlib/free/
于 2013-05-31T05:12:04.067 回答