日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言内存管理

發(fā)布時(shí)間:2025/3/20 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言内存管理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

c語言內(nèi)存管理

C 語言為內(nèi)存的分配和管理提供了幾個(gè)函數(shù)。這些函數(shù)可以在 <stdlib.h> 頭文件中找到。

上面的圖片來源:https://www.runoob.com/cprogramming/c-memory-management.html

靜態(tài)內(nèi)存分配和動(dòng)態(tài)內(nèi)存分配的區(qū)別:
靜態(tài)內(nèi)存分配 :存儲空間的大小、位置在程序的執(zhí)行過程中不能改變了,程序結(jié)束后內(nèi)存會自動(dòng)的收回。
動(dòng)態(tài)內(nèi)存分配 :在程序執(zhí)行的過程中存儲空間的大小,位置可以發(fā)生改變。
當(dāng)我們要用到一塊內(nèi)存并且知道需要多大的內(nèi)存時(shí)就可以用靜態(tài)內(nèi)存分配,我們可以定義一個(gè)數(shù)組來存放數(shù)據(jù)。
int a[10];//定義了一個(gè)4*10個(gè)字節(jié)大小的內(nèi)存空間,且程序結(jié)束后會自動(dòng)的回收所占用的內(nèi)存。

當(dāng)我們要用空間但是不知道要用多大空間的時(shí)候,就需要?jiǎng)討B(tài)的分配空間,我們需要用定義一個(gè)指針,用指針指向我們開辟的內(nèi)存空間,如果不夠用還可以在添加內(nèi)存空間,最后需要自己回收內(nèi)存。
(1)malloc()函數(shù)
分配失敗返回NULL,分配成功返回一個(gè)指針。
函數(shù)原型: void *malloc(unsigned int num)
例子:

(2)calloc()函數(shù)
分配失敗返回NULL,分配成功返回一個(gè)指針。
函數(shù)原型: void *calloc(unsigned int num,unsigned int size)
例子:

malloc()函數(shù)分配內(nèi)存時(shí)不會初始化數(shù)據(jù),里面的數(shù)據(jù)未知,而calloc()函數(shù)會初始化為0。
例:

(3)recalloc()函數(shù)
分配失敗返回NULL,分配成功返回一個(gè)指針。
函數(shù)原型:void *recalloc(void *address,int newsize);
例:

你可能會這樣想,我如果覺的空間剛開始分配的太少了想擴(kuò)容看以再用一次malloc()或calloc()函數(shù),把內(nèi)存分大點(diǎn),這樣用了兩次malloc()或calloc()函數(shù),這樣是再分配了一塊新的位置新的大小的空間,以前的數(shù)據(jù)找不到了,但是內(nèi)存還在占用。
例:


從上面的圖片可以看出,無論是malloc()還是calloc()函數(shù)它們再給同一個(gè)指針開辟空間,指針的指向變了,也就是說分配了一個(gè)全新的空間,不是和原來空間連著的。
我們下面看一下recalloc():

可以看到用recalloc()函數(shù)重新開辟空間,指針的指向還是原來的指向,以前的數(shù)據(jù)也沒有丟失。
(4)free()函數(shù)
free()函數(shù)無返回值
函數(shù)原型:void free(void *address)
例:

最后補(bǔ)充一下其他的知識點(diǎn):
靜態(tài)存儲: 全局變量(extern),(static)靜態(tài)變量.
動(dòng)態(tài)存儲: 局部變量(auto),寄存器變量(register).

總結(jié)

以上是生活随笔為你收集整理的c语言内存管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。