鐩稿悓鐐癸細瀹冧滑閮藉彲浠ョ敤鏉ョ敵璇峰姩鎬佸唴瀛樺拰鏄惁鍐呭瓨銆?br>
涓嶅悓鐐癸細1.malloc鍜宖ree鏄疌/C++璇█鐨勬爣鍑嗗簱鍑芥暟錛宯ew鍜宒elete鏄疌++涓殑榪愮畻絎︺?br>
2.瀵逛簬闈炲唴閮ㄥ璞$被鍨嬭岃█錛宮alloc鍜宖ree鏃犳硶婊¤凍瑕佹眰錛屽璞″湪鍒涘緩鐨勫悓鏃墮渶瑕佽嚜鍔ㄦ墽琛屾瀯閫犲嚱鏁幫紝鍦ㄩ攢姣佷箣鍓嶉渶瑕佽嚜鍔ㄦ墽琛屾瀽鏋勫嚱鏁般傜敱浜?
malloc鍜宖ree鏄簱鍑芥暟鑰屼笉鏄繍綆楃錛屼笉鍦ㄧ紪璇戝櫒鎺у埗鏉冮檺涔嬪唴錛屼笉鑳藉鎶婃墽琛屾瀯閫犲嚱鏁板拰鏋愭瀯鍑芥暟寮哄姞緇檓alloc鍜宖ree銆?br>
3.鍑芥暟malloc鍘熷瀷錛?br>
void* malloc錛坰ize_t size錛夛紱
鐢╩alloc 鐢寵涓鍧楅暱搴︿負length 鐨勬暣鏁扮被鍨嬬殑鍐呭瓨錛岀▼搴忓涓嬶細int *p = (int *) malloc(sizeof(int) * length);
鎴戜滑搴斿綋鎶婃敞鎰忓姏闆嗕腑鍦ㄤ袱涓绱犱笂錛?#8220;綾誨瀷杞崲”鍜?#8220;sizeof”銆?br>
1. malloc 榪斿洖鍊肩殑綾誨瀷鏄痸oid *錛屾墍浠ュ湪璋冪敤malloc 鏃惰鏄懼紡鍦拌繘琛岀被鍨嬭漿鎹紝灝唙oid * 杞崲鎴愭墍闇瑕佺殑鎸囬拡綾誨瀷銆?br>
2.malloc 鍑芥暟鏈韓騫朵笉璇嗗埆瑕佺敵璇風殑鍐呭瓨鏄粈涔堢被鍨嬶紝瀹冨彧鍏沖績鍐呭瓨鐨勬誨瓧鑺傛暟銆?br>
鍑芥暟free 鐨勫師鍨嬪涓嬶細void free( void * memblock );
涓轟粈涔坒ree
鍑芥暟涓嶈薄malloc 鍑芥暟閭f牱澶嶆潅鍛紵榪欐槸鍥犱負鎸囬拡p 鐨勭被鍨嬩互鍙婂畠鎵鎸囩殑鍐呭瓨鐨勫閲忎簨鍏堥兘鏄煡閬撶殑錛岃鍙ree(p)鑳芥紜湴閲婃斁鍐呭瓨銆傚鏋減
鏄疦ULL 鎸囬拡錛岄偅涔坒ree瀵筽 鏃犺鎿嶄綔澶氬皯嬈¢兘涓嶄細鍑洪棶棰樸傚鏋減 涓嶆槸NULL 鎸囬拡錛岄偅涔坒ree 瀵筽榪炵畫鎿嶄綔涓ゆ灝變細瀵艱嚧紼嬪簭榪愯閿欒銆?br>
4.new/delete 鐨勪嬌鐢ㄨ鐐?br>
榪愮畻絎ew 浣跨敤璧鋒潵瑕佹瘮鍑芥暟malloc 綆鍗曞緱澶氾紝渚嬪錛?br>
int *p1 = (int *)malloc(sizeof(int) * length);
int *p2 = new int[length];
榪欐槸鍥犱負new 鍐呯疆浜唖izeof銆佺被鍨嬭漿鎹㈠拰綾誨瀷瀹夊叏媯鏌ュ姛鑳姐傚浜庨潪鍐呴儴鏁版嵁綾誨瀷鐨勫璞¤岃█錛宯ew 鍦ㄥ垱寤哄姩鎬佸璞$殑鍚屾椂瀹屾垚浜嗗垵濮嬪寲宸ヤ綔銆傚鏋滃璞℃湁澶氫釜鏋勯犲嚱鏁幫紝閭d箞new 鐨勮鍙ヤ篃鍙互鏈夊縐嶅艦寮忋?/p>