局部變量
2.堆
程序運(yùn)行時(shí)動(dòng)態(tài)申請(qǐng)的空間
3.BSS段
未初始化的全局變量和靜態(tài)變量
4.數(shù)據(jù)段
完成初始化的全局變量和靜態(tài)變量,一級(jí)常量字符串,所以數(shù)據(jù)段又稱為靜態(tài)區(qū)
5.代碼段
程序運(yùn)行代碼所占用的空間
常見的動(dòng)態(tài)分配內(nèi)存分配函數(shù)
C語言中提供了三個(gè)動(dòng)態(tài)分配內(nèi)存的函數(shù):malloc、calloc 和 realloc 1.malloc 它的使用方法 void * malloc(unsigned size) ,傳入一個(gè)無符號(hào)的長度,其中size是指分配內(nèi)存的字節(jié) void *malloc(unsigned size),包含在庫函數(shù)<stdlib.h>中,作用是在內(nèi)存的堆區(qū)分配一個(gè)大小為size的連續(xù)空間,如果分配內(nèi)存成功,函數(shù)返回新分配內(nèi)存的首地址,否則,返回NULL 注意:鑒于以上這點(diǎn),所以一般寫程序的時(shí)候需要判斷分配內(nèi)存是否成功 例: int *p ; p=(int* ) malloc(sizeof(int)); if(p!=NULL) .....//需要執(zhí)行的語句 else ...//打印分配內(nèi)存不成功出錯(cuò)信息 注意: maclloc 申請(qǐng)的內(nèi)存空間,如果我們不賦值,存放的是一些隨意數(shù)(垃圾數(shù)) //所以有必要的時(shí)候可以給申請(qǐng)的空間進(jìn)行初始化 memset(p,48,16); 2.calloc 分配指定快數(shù)和長度的內(nèi)存空間 格式: calloc(快數(shù),長度); //他們的地址也是連續(xù)的 注意: calloc 是會(huì)自動(dòng)幫我們初始化為0的 3.realloc 可以給已經(jīng)存在的空間擴(kuò)充大小 格式:realloc(void*,size_t); p=realloc(p,40*sizeof(int));C中解決內(nèi)存泄露問題
使用free(要釋放的空間的首地址) free(p);
本文題目:內(nèi)存分區(qū)-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://aaarwkj.com/article34/jdipe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、服務(wù)器托管、商城網(wǎng)站、網(wǎng)站營銷、面包屑導(dǎo)航、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容