C ÓïÑÔ malloc ºÍ freeº¯Êýdz̸
À´×Ôbccn CÓïÑÔÂÛ̳
Ê×ÏÈÉùÃ÷Ò»µã£¬±¾ÎÄΪתÌù¡£
dz̸CÖеÄmallocºÍfree
×÷Õߣºlj_860603 ÔĶÁÈ˴Σº43013 ÎÄÕÂÀ´Ô´£º±¾Õ¾Ô´´ ·¢²¼Ê±¼ä£º2006-8-5 ÍøÓÑÆÀÂÛ(32)Ìõ
ÔÌû¼°ÌÖÂÛ£ºhttp://bbs.bccn.net/thread-82212-1-1.html
ÔÚCÓïÑÔµÄѧϰÖУ¬¶ÔÄÚ´æ¹ÜÀíÕⲿ·ÖµÄ֪ʶÕÆÎÕÓÈÆäÖØÒª£¡Ö®Ç°¶ÔCÖеÄmalloc()ºÍfree()Á½¸öº¯ÊýµÄÁ˽âÉõÉÙ£¬Ö»ÖªµÀ´ó¸Å¸ÃÔõôÓ×—¾ÍÊÇmallocÈ»ºófree¾ÍÒ»ÇÐOKÁË¡£µ±È»ÏÖÔÚ¶ÔÕâÁ½¸öº¯ÊýµÄÌå»áÒ²²»¼ûµÃ¶à£¬²»¹ý¶ÔÓÚ±¾ÎÄÕµÚÈý²¿·ÖµÄÄÚÈݵ¹ÊÇÓÐÁËתÕÛÐÔµÄÈÏʶ£¬ËùÒÔ
дÏÂÕâƪÎÄÕÂ×÷Ϊһ¸ö¶Ô֪ʶµÄ×ܽᡣÕâƪÎÄÕÂÖ®ËùÒÔÃüÃûÖÐÓиö“dz̸”µÄ×ÖÑÛ£¬Ò²¾ÍÊÇÕâ¸öÒâ˼ÁË£¡Ï£Íû¶Ô´ó¼ÒÓÐÒ»µã°ïÖú£¡
Èç¹û²»³¶µÃÌ«Ô¶µÄ»°£¨±ÈÈç˵²Ù×÷ϵͳÖÐÐéÄâÄÚ´æºÍÎïÀíÄÚ´æÈçºÎÔË×öÈçºÎ¹ÜÀíÖ®ÀàµÄ֪ʶµÈ£©£¬ÎҸоõÕâƪÎÄÕÂÓ¦¸ÃÊDZȽÏÈ«ÃæµØ̸ÁËÒ»ÏÂmalloc()ºÍfree().ÕâƪÎÄÕÂÓÉdzÈëÉ²»¼ûµÃÓжàÉ·ÖÈý¸ö²¿·Ö½éÉÜÖ÷ÒªÄÚÈÝ¡£
·Ï»°ÁËÄÇô¶à£¬ÏÂÃæÁ¢¿Ì½øÈëÖ÷Ìâ================¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·¡·
Ò»¡¢malloc()ºÍfree()µÄ»ù±¾¸ÅÄîÒÔ¼°»ù±¾Ó÷¨£º
1¡¢º¯ÊýÔÐͼ°ËµÃ÷£º
void *malloc(long NumBytes)£º¸Ãº¯Êý·ÖÅäÁËNumBytes¸ö×Ö½Ú£¬²¢·µ»ØÁËÖ¸ÏòÕâ¿éÄÚ´æµÄÖ¸Õë¡£Èç¹û·ÖÅäʧ°Ü£¬Ôò·µ»ØÒ»¸ö¿ÕÖ¸Õ루NULL£©¡£
¹ØÓÚ·ÖÅäʧ°ÜµÄÔÒò£¬Ó¦¸ÃÓжàÖÖ£¬±ÈÈç˵¿Õ¼ä²»×ã¾ÍÊÇÒ»ÖÖ¡£
void free(void *FirstByte)£º ¸Ãº¯ÊýÊǽ«Ö®Ç°ÓÃmalloc·ÖÅäµÄ¿Õ¼ä»¹¸ø³ÌÐò»òÕßÊDzÙ×÷ϵͳ£¬Ò²¾ÍÊÇÊÍ·ÅÁËÕâ¿éÄڴ棬ÈÃËüÖØеõ½×ÔÓÉ¡£
2¡¢º¯ÊýµÄÓ÷¨£º
ÆäʵÕâÁ½¸öº¯ÊýÓÃÆðÀ´µ¹²»ÊǺÜÄÑ£¬Ò²¾ÍÊÇmalloc()Ö®ºó¾õµÃÓù»Á˾Í˦ÁËËü°ÑËü¸øfree()ÁË£¬¾Ù¸ö¼òµ¥Àý×Ó£º
³ÌÐò´úÂ룺
// Code...
char *Ptr = NULL;
Ptr = (char *)malloc(100 * sizeof(char));
if (NULL == Ptr)
{
exit (1);
}
gets(Ptr);
// code...
Ïà¹ØÎĵµ£º
CµÄstaticµÄÓ÷¨:
1.¶ÔÓÚº¯ÊýÀïµÄ¾Ö²¿±äÁ¿,¸Ä±äµÄÊÇËüµÄÉú´æÖÜÆÚ,Õâ¸ö±äÁ¿»áÒ»Ö±´æÔÚ,µ½³ÌÐò½áÊø. º¯ÊýÍⲿ·ÃÎʲ»µ½Õâ¸ö±äÁ¿.
2.¶ÔÓÚÈ«¾ÖµÄ±äÁ¿,¸Ä±äµÄÊÇËüµÄ×÷Ó÷¶Î§,Õâ¸ö±äÁ¿Ö»ÔÚ±¾ÎļþÄÚÓÐЧ.ÆäËüµÄ.cÎļþ¿´²»µ½.
µ±È»ËüµÄÉúÃüÖÜÆÚÊǺͳÌÐòÒ»ÑùµÄ ......
×Ö·û´®ÊÇCÓïÑԵľ«»ªÖ®Ò»£¬CÓïÑÔÊDZÊÊÔ¿¼ÌâµÄºËÐÄ֪ʶµã£¬²»¹ÜÄãÊÇѧc++£¬Ñ§java»¹ÊÇc#¡¢.net£¬»¹Êǽű¾Ê²Ã´µÄ£¬×îºÃ»¹ÊǶ®µãC°É£¬²»¶®C±ÊÊÔ»òÐí±È½Ï³Ô¿÷¡£ËùÒÔÔÚ±ÊÊÔÃæÊÔÖУ¬×Ö·û´®µÄÎÊÌâÊǾ³£³öÏֵģ¬ÆäÖÐÓÐÒ»ÀàÎÊÌâ¾ÍÊÇ×Ô¼ºÊµÏÖһЩ»ù±¾µÄC±ê×¼¿âµÄ×Ö·û´®´¦Àíº¯Êý»òÆäËûC±ê×¼¿âº¯Êý¡£
ÎÊÌâÒ»ÃèÊö£º Óñê×¼Cдһ¸öÅжϸ ......
pid_t pid=fork()
it has 3 situation for the return result pid
0 child
>0 parent process
<0 fork fail
fork create a new process and it parent live alse when the child process had been created ......
Ò». ÔÚcÖзÖΪÕ⼸¸ö´æ´¢Çø
1.Õ» - ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å
2.¶Ñ - Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøʱ¿ÉÄÜÓÉOS»ØÊÕ
3.È«¾ÖÇø£¨¾²Ì¬Çø£©£¬È«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿µÄ´æ´¢ÊÇ·ÅÔÚÒ»¿éµÄ£¬³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿ÔÚÒ»¿éÇøÓò£¬Î´³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍδ³õʼ»¯µÄ¾²Ì¬±äÁ¿ÔÚÏàÁÚµÄÁíÒ»¿éÇøÓò¡£- ³ÌÐò½áÊøÊÍ·Å
4.ÁíÍ ......