清风袭梦 發表於 2025-3-30 20:09:00

C语言-堆内存申请和释放

<p>大家在使用函数的时候避免不了使用堆内存,堆内存是一个匿名内存,它里边的内容是不能标识符进行访问的,只能使用指针进行访问,而且C语言的标准库函数给我们提供了两个堆内存的申请函数,但是这两个函数到底有什么区别呢?</p>
<h1 id="malloc函数">malloc函数</h1>
<p>相信大家对这个函数并不陌生,这个函数是用来像内存中的堆空间申请连续的存储单元,这个函数有<mark>一个参数</mark>就是我要申请的字节大小,他的返回值是一个<mark>void*</mark>的指针类型,在使用的时候要记得强转为自己所需要的指针类型哦!</p>
<pre><code>void* malloc(size_t size);
</code></pre>
<h1 id="calloc函数">calloc函数</h1>
<p>calloc函数也是一个堆内存空间申请函数,但是与<mark>malloc</mark>不同的是,它有<mark>两个参数,第一个是要分配几块内存,第二个参数是要分配的内存块的大小,</mark>他的返回值是一个<mark>void*</mark>的指针类型,此函数会对内存进行初始化,初始化的值为0;在使用的时候要记得强转为自己所需要的指针类型哦!</p>
<pre><code>void* calloc(size_t num, size_t size);
</code></pre>
<p>最重要的一点,在使用完malloc和calloc函数申请的内存空间之后,要记得及时使用<mark>free函数</mark>释放申请的内存空间,如果不及时释放,会造成内存泄漏哦。。。</p>
<pre><code>void free(void* ptr);
</code></pre><br><br>
来源:https://www.cnblogs.com/lradian/p/18801045
頁: [1]
查看完整版本: C语言-堆内存申请和释放