C/C++ÖÐmallocºÍnewµÄÇø±ð
¡¡¡¡1£¬mallocÓëfreeÊÇC++/CÓïÑԵıê×¼¿âº¯Êý£¬new/deleteÊÇC++µÄÔËËã·û¡£ËüÃǶ¼¿ÉÓÃÓÚÉêÇ붯̬ÄÚ´æºÍÊÍ·ÅÄÚ´æ¡£
¡¡¡¡2£¬¶ÔÓÚ·ÇÄÚ²¿Êý¾ÝÀàÐ͵ĶÔÏó¶øÑÔ£¬¹âÓÃmaloc/freeÎÞ·¨Âú×㶯̬¶ÔÏóµÄÒªÇ󡣶ÔÏóÔÚ´´½¨µÄͬʱҪ×Ô¶¯Ö´Ðй¹Ô캯Êý£¬¶ÔÏóÔÚÏûÍö֮ǰҪ×Ô¶¯Ö´ÐÐÎö¹¹º¯Êý¡£ÓÉÓÚmalloc/freeÊǿ⺯Êý¶ø²»ÊÇÔËËã·û£¬²»ÔÚ±àÒëÆ÷¿ØÖÆȨÏÞÖ®ÄÚ£¬²»Äܹ»°ÑÖ´Ðй¹Ô캯ÊýºÍÎö¹¹º¯ÊýµÄÈÎÎñÇ¿¼ÓÓÚmalloc/free.
¡¡¡¡3£¬Òò´ËC++ÓïÑÔÐèÒªÒ»¸öÄÜÍê³É¶¯Ì¬ÄÚ´æ·ÖÅäºÍ³õʼ»¯¹¤×÷µÄÔËËã·ûnew£¬ÒÔÒ»¸öÄÜÍê³ÉÇåÀíÓëÊÍ·ÅÄڴ湤×÷µÄÔËËã·ûdelete.×¢Òânew/delete²»Êǿ⺯Êý¡£
¡¡¡¡4£¬C++³ÌÐò¾³£Òªµ÷ÓÃCº¯Êý£¬¶øC³ÌÐòÖ»ÄÜÓÃmalloc/free¹ÜÀí¶¯Ì¬ÄÚ´æ
¡¡¡¡new ÊǸö²Ù×÷·û£¬ºÍʲô"+"£¬"-"£¬"="……ÓÐÒ»ÑùµÄµØλ¡£
¡¡¡¡mallocÊǸö·ÖÅäÄÚ´æµÄº¯Êý£¬¹©Äãµ÷Óõġ£
¡¡¡¡newÊDZ£Áô×Ö£¬²»ÐèҪͷÎļþÖ§³Ö¡£
¡¡¡¡mallocÐèҪͷÎļþ¿âº¯ÊýÖ§³Ö¡£
¡¡¡¡new ½¨Á¢µÄÊÇÒ»¸ö¶ÔÏó£¬
¡¡¡¡malloc·ÖÅäµÄÊÇÒ»¿éÄÚ´æ¡£
¡¡¡¡new½¨Á¢µÄ¶ÔÏóÄã¿ÉÒÔ°ÑËüµ±³ÉÒ»¸öÆÕͨµÄ¶ÔÏó£¬ÓóÉÔ±º¯Êý·ÃÎÊ£¬²»ÒªÖ±½Ó·ÃÎÊËüµÄµØÖ·¿Õ¼ä
¡¡¡¡malloc·ÖÅäµÄÊÇÒ»¿éÄÚ´æÇøÓò£¬¾ÍÓÃÖ¸Õë·ÃÎʺÃÁË£¬¶øÇÒ»¹¿ÉÒÔÔÚÀïÃæÒƶ¯Ö¸Õë¡£
¡¡¡¡¼ò¶øÑÔÖ®£º
¡¡¡¡new ÊÇÒ»¸ö²Ù×÷·û£¬¿ÉÒÔÖØÔØ
¡¡¡¡mallocÊÇÒ»¸öº¯Êý£¬¿ÉÒÔ¸²¸Ç
¡¡¡¡new ³õʼ»¯¶ÔÏ󣬵÷ÓöÔÏóµÄ¹¹Ô캯Êý£¬¶ÔÓ¦µÄdeleteµ÷ÓÃÏàÓ¦µÄÎö¹¹º¯Êý
¡¡¡¡malloc½ö½ö·ÖÅäÄڴ棬free½ö½ö»ØÊÕÄÚ´æ
ת×Ô£ºhttp://tech.ddvip.com/2009-05/1242201392118933.html
Ïà¹ØÎĵµ£º
±¾ÎÄ´Ó½éÉÜ»ù´¡¸ÅÄîÈëÊÖ£¬Ì½ÌÖÁËÔÚC/C++ÖжÔÈÕÆÚºÍʱ¼ä²Ù×÷ËùÓõ½µÄÊý¾Ý½á¹¹ºÍº¯Êý£¬²¢¶Ô¼Æʱ¡¢Ê±¼äµÄ»ñÈ¡¡¢Ê±¼äµÄ¼ÆËãºÍÏÔʾ¸ñʽµÈ·½Ãæ½øÐÐÁ˲ûÊö¡£±¾ÎÄ»¹Í¨¹ý´óÁ¿µÄʵÀýÏòÄãչʾÁËtime.hÍ·ÎļþÖÐÉùÃ÷µÄ¸÷ÖÖº¯ÊýºÍÊý¾Ý½á¹¹µÄÏêϸʹÓ÷½·¨¡£
¹Ø¼ü×Ö£ºUTC£¨ÊÀ½ç±ê׼ʱ¼ä£©£¬Calendar Time£¨ÈÕÀúʱ¼ä£©£¬epoch£¨Ê±¼äµã£©£¬cl ......
±¾³ÌÐò¿ÉÒÔ¶ÁÈ¡.wavÎļþ£¬È»ºó½øÐв¥·Å¡£
È·ÈÏ·½·¨£ºcat /etc/sndstat£¬Èç¹ûÏÔʾÎÞ´ËÉ豸£¬ÔòûÓа²×°Çý¶¯¡£
#include <unistd.h>#include <fcntl.h>#include <sys/types.h>#include <sys/ioctl.h>#include <stdlib.h>#include <stdio.h>#include&nbs ......
¿´µ½Õâ¸öÃæÊÔÌâ,¹À¼ÆºÜ¶à¸ÕѧCÖ¸ÕëµÄͬѧ¶¼»á¸ã´í.
void GetMemory(char *p)
{
// ´«µÝ½øÀ´µÄµÄֵʹµÃ*p==NULL
// ÕâÀïÐ޸ĵÄÊÇÕâ¸öº¯ÊýÄÚµÄÁÙʱָÕë±äÁ¿pµÄÖµ
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
// ´«µÝ½øÈ¥µÄÊÇstrµÄÖµNULL
GetMemory(str);
// ÕâÀïstrÖ¸Õë² ......
ÓÉÓÚC++±àÒëÆ÷ÐèÒªÖ§³Öº¯ÊýµÄÖØÔØ£¬»á¸Ä±äº¯ÊýµÄÃû³Æ£¬Óë±ê×¼CÖк¯ÊýÃû³Æ²»Í¬¡£È»¶ødllµÄµ¼³öº¯Êýͨ³£ÊDZê×¼C¶¨ÒåµÄ£¬Èñê×¼C±àдµÄdllº¯Êý¶¨ÒåÔÚCºÍC++±àÒëÆ÷϶¼ÄܱàÒëͨ¹ý£¬Í¨³£»áʹÓÃÒÔϵĸñʽ£º£¨Õâ¸ö¸ñʽÔںܶà³ÉÊìµÄ´úÂëÖкܳ£¼û£©
#ifdef __cplusplus extern "C"
{
#endif
// ......
CÓïÑÔÎļþ²Ù×÷½Ó´¥ºÜ¾ÃÁË£¬Ò»Ö±Ã»ÓÐ×ܽáÏà¹ØÄÚÈÝ£¬½ñÌìÓõ½Á˾ÍÈ¥ÕÒÁËÕÒÏà¹ØÄÚÈÝ¡£
ÔÚANSI CÖУ¬¶ÔÎļþµÄ²Ù×÷·ÖΪÁ½ÖÖ·½Ê½£¬¼´Á÷ʽÎļþ²Ù×÷ºÍI/OÎļþ²Ù×÷
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold ......