pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

C語言動(dòng)態(tài)數(shù)組詳解

本文給大家分享的是一則使用C語言實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的代碼,完美解決內(nèi)存溢出以及內(nèi)存回收問題,有需要的小伙伴可以參考下

內(nèi)存分配函數(shù)malloc calloc realloc free

堆內(nèi)存分配函數(shù) 說明
void * malloc(int n) 形參n為要求分配的字節(jié)數(shù)。需要注意的是,malloc函數(shù)分配得到的內(nèi)存空間是未初始化的。必須使用memset函數(shù)來初始化。
calloc(10, sizeof(char)); 兩個(gè)參數(shù):?jiǎn)卧獢?shù),單元的size。分配內(nèi)存,并清理內(nèi)存。初始內(nèi)容全部為0;
realloc(p,10); 調(diào)整內(nèi)存的大小; 分配的內(nèi)存空間并未初始化;使用新返回的地址,
free(void * p) 釋放指針p所指向的堆上的空間;

malloc() 不對(duì)分配的內(nèi)存空間做初始化,內(nèi)存上原有的值不會(huì)被清理。

realloc(),在原有內(nèi)存基礎(chǔ)之上,在堆中間增加連續(xù)的內(nèi)存,如果原有內(nèi)存沒有連續(xù)空間可擴(kuò)展,則新分配一個(gè)空間,將原有內(nèi)存copy到新空間,然后釋放原有內(nèi)存。


p = malloc(10);	//直接申請(qǐng)4k的空間。內(nèi)存頁大小。  返回值是無類型指針void *,可以強(qiáng)制轉(zhuǎn)換。
free(p);
char *p = calloc(10, sizeof(char));	 //兩個(gè)參數(shù):?jiǎn)卧獢?shù),單元的size。		分配內(nèi)存,并清理內(nèi)存
char *p2 = realloc(p,10);		// 在原有內(nèi)存基礎(chǔ)之上,在堆中間增加連續(xù)的內(nèi)存,如果原有內(nèi)存沒有連續(xù)空間可擴(kuò)展,則新分配一個(gè)空間,將原有內(nèi)存copy到新空間,然后釋放原有內(nèi)存。
char *p2 = realloc(NULL,20);	//此時(shí),和malloc等價(jià)

realloc和malloc一樣,只分配內(nèi)存,不清理,需要手動(dòng)初始化。

// 復(fù)雜數(shù)據(jù)內(nèi)存放在堆里面

內(nèi)存操作函數(shù) memset memcpy memmove


memset(buf,0,sizeof(buf));//三個(gè)參數(shù)分別是:要設(shè)置的內(nèi)存地址,要設(shè)置的值,值占的內(nèi)存的字節(jié)數(shù)。	將一塊內(nèi)存初始化為0最長(zhǎng)見的方法。
extern void *memset(void *buffer, int c, int count) 
memcpy(void *dest,void *src,unsigned int count);//將buf1的地址的內(nèi)存內(nèi)容全部拷貝到buf2,拷貝大小為第三個(gè)參數(shù):字節(jié)一定確保內(nèi)存區(qū)域沒有內(nèi)存區(qū)域重疊。
memmove(buf2, buf1, sizeof(buf1));//內(nèi)存移動(dòng),并沒有改變?cè)純?nèi)存的值。  

二維動(dòng)態(tài)數(shù)組的建立和釋放

在創(chuàng)建動(dòng)態(tài)數(shù)組的過程中我們要遵循一個(gè)原則,那就是在創(chuàng)建的時(shí)候從外層往里層,逐層創(chuàng)建;
而釋放的時(shí)候從里層往外層,逐層釋放。


int main()
{
	int num1,num2;
	num1 = 4;
    num2 = 5;
	int **array = (int **)calloc(num1,sizeof(int *));//開辟空間,num1個(gè)一維int*型指針
	for(int i=0;i<num1;i++)
	{
		array[i] = (int *)calloc(num2,sizeof(int));		//給每個(gè)int *型指針分配內(nèi)存
	}
	for(int i=0;i<num1;i++)
	{
		for(int j=0;j<num2;j++)
		{
			array[i][j] =i*num2+j+1;
			printf("%d\t",array[i][j]);
		}
		printf("\n");
	}
	for(int i=0;i<num1;i++)
	{
		free(array[i]);		// 釋放第二維的內(nèi)存
	}
	free(array);			// 釋放第一維的內(nèi)存
	return 0;
}

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注html5模板網(wǎng)的更多內(nèi)容!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

這篇文章主要介紹了C語言指針引用數(shù)組案例講解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
這篇文章主要介紹了C語言全部?jī)?nèi)存操作函數(shù)的實(shí)現(xiàn)詳細(xì)講解,作者用圖文代碼實(shí)例講解的很清晰,有感興趣的同學(xué)可以研究下
這篇文章主要介紹了使用C語言操作文件的基本函數(shù)整理,包括創(chuàng)建和打開以及關(guān)閉文件的操作方法,需要的朋友可以參考下,希望能夠給你帶來幫助
scanf()函數(shù)是通用終端格式化輸入函數(shù),它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取輸入的信息,接下來通過本文給大家介紹C語言中關(guān)于scanf讀取緩存區(qū)的問題,需要的朋友一起看看吧
本文主要講解C語言 常量,這里整理了 C語言常量的基礎(chǔ)知識(shí),并附代碼示例和示例詳細(xì)講解,希望能幫助開始學(xué)習(xí)C 語言的同學(xué)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)隨機(jī)抽獎(jiǎng)程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 渣油泵,KCB齿轮泵,不锈钢齿轮泵,重油泵,煤焦油泵,泊头市泰邦泵阀制造有限公司 | 汽液过滤网厂家_安平县银锐丝网有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 宠物店加盟_宠物连锁店_开宠物店-【派多格宠物】 | 煤机配件厂家_刮板机配件_链轮轴组_河南双志机械设备有限公司 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 农业四情_农业气象站_田间小型气象站_智慧农业气象站-山东风途物联网 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 武汉高低温试验箱_恒温恒湿试验箱厂家-武汉蓝锐环境科技有限公司 | 广域铭岛Geega(际嘉)工业互联网平台-以数字科技引领行业跃迁 | 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 吲哚菁绿衍生物-酶底物法大肠菌群检测试剂-北京和信同通科技发展有限公司 | 大型冰雕-景区冰雕展制作公司,3D创意设计源头厂家-[赛北冰雕] | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | YJLV22铝芯铠装电缆-MYPTJ矿用高压橡套电缆-天津市电缆总厂 | 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 【官网】博莱特空压机,永磁变频空压机,螺杆空压机-欧能优 | LINK FASHION 童装·青少年装展| 成都租车_成都租车公司_成都租车网_众行宝| 包头市鑫枫装饰有限公司| 对夹式止回阀厂家,温州对夹式止回阀制造商--永嘉县润丰阀门有限公司 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 高柔性拖链电缆-聚氨酯卷筒电缆-柔性屏蔽电缆厂家-玖泰电缆 | 软文世界-软文推广-软文营销-新闻稿发布-一站式软文自助发稿平台 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 丹佛斯变频器-丹佛斯压力开关-变送器-广州市风华机电设备有限公司 |