#include "stdio.h"
#include "malloc.h"
typedef int elemtype;
struct node
{
elemtype data;
struct node *next;
};
typedef struct node NODE;
NODE * creat(NODE *head)
{
NODE *p,*q;
elemtype i;
head=(NODE*)malloc(sizeof(NODE));
scanf("%d",&(head->data));
p=head;
while(p->data!=0)//0Ϊ½áÊø·û
{
q=(NODE*)malloc(sizeof(NODE));
scanf("%d",&(q->data));
p->next=q;
p=q;
}
p->next=NULL;
return head;
}
void printlist(NODE *head)
{
NODE *p;
elemtype i=0;
p=head;
while(p->next!=NULL)
{
printf("the %d node\n",i);
i++;
printf("%d\n",p->data);
p=p->next;
}
printf("\n");
}
void main(void)
{
NODE *my_head;
my_head=(NODE *)malloc(sizeof(NODE));
my_head=creat(my_head);
printlist(my_head);
//getch();
} ......
ÕûÐͳ£Á¿¾ÍÊÇÕû³£Êý¡£Ê¹ÓõÄÕû³£ÊýÓа˽øÖÆ¡¢Ê®Áù½øÖƺÍÊ®½øÖÆÈýÖÖ¡£ Ê®½øÖÆÕû³£Êý²»ÄÜÓÐǰµ¼0£¬²»ÄÜÓзÇÊý×Ö×Ö·û¡£ °Ë½øÖÆÕû³£Êý±ØÐëÒÔ0¿ªÍ·£¬²»ÄÜÓзÇÊý×Ö×Ö·û¡£ Ê®Áù½øÖÆÕû³£Êý±ØÐëÒ»0X»ò0x¿ªÍ·£¬²»ÄÜÓзǷ¨×Öĸ£¨ ......
×î½üÔÚÍøÉϲéÁËºÃ¶à¹ØÓÚC²¥·ÅwavÕâ·½ÃæµÄ×ÊÁÏ£¬µ÷ÊÔ°ëÌìҲûÓнá¹û£¬Ëѵ½Ò»¸ö±àÒëºÃµÄEXEÎļþÄܲ¥·Å£¬Ã»ÓÐÔ´´úÂ룬·´»ã±à²»ÁË£¬ËÄÜÖ¸µãһϡ£¡£¡£¡£¡£ÒÔÏÂÁ½ÖÖ´úÂë¶Î£º
#include <stdio.h>
#include <dos.h>
/* wavÎļþ½á¹¹ */
typedef struct WaveData
{
unsigned long sample_lenth;
unsigned short rate;
unsigned short channels;
unsigned char time_constant;
char bit_res;
char *name_wav;
char *sample;
} WAV;
/* wavÍ·ÐÅÏ¢½á¹¹ */
typedef struct HeaderType
{
long riff; /*RIFFÀà×ÊÔ´ÎļþÍ·²¿*/
unsigned long file_len; /*Îļþ³¤¶È*/
char &n ......
ÔÚÌÖÂÛÈ«¾Ö±äÁ¿Ö®Ç°ÎÒÃÇÏÈÒªÃ÷°×¼¸¸ö»ù±¾µÄ¸ÅÄ
1. ±àÒëµ¥Ôª(Ä£¿é)£º
ÔÚIDE¿ª·¢¹¤¾ß´óÐÐÆäµÀµÄ½ñÌ죬¶ÔÓÚ±àÒëµÄһЩ¸ÅÄîºÜ¶àÈËÒѾ²»ÔÙÇå³þÁË£¬ºÜ¶à³ÌÐòÔ±×îŵľÍÊÇ´¦ÀíÁ¬½Ó´íÎó(LINK ERROR), ÒòΪËü²»Ïñ±àÒë´íÎóÄÇÑù¿ÉÒÔ¸ø³öÄã³ÌÐò´íÎóµÄ¾ßÌåλÖã¬Äã³£³£¶ÔÕâÖÖ´íÎó¸Ðµ½°ÃÄÕ£¬µ«ÊÇÈç¹ûÄã¾³£Ê¹ÓÃgcc£¬makefileµÈ¹¤¾ßÔÚlinux»òÕßǶÈëʽÏÂ×ö¿ª·¢¹¤×÷µÄ»°£¬ÄÇôÄã¿ÉÄܷdz£µÄÀí½â±àÒëÓëÁ¬½ÓµÄÇø±ð£¡µ±ÔÚVCÕâÑùµÄ¿ª·¢¹¤¾ßÉϱàдÍê´úÂ룬µã»÷±àÒë°´Å¥×¼±¸Éú³ÉexeÎļþʱ£¬VCÆäʵ×öÁËÁ½²½¹¤×÷£¬µÚÒ»²½£¬½«Ã¿¸ö.cpp(.c)ºÍÏàÓ¦.hÎļþ±àÒë³ÉobjÎļþ£»µÚ¶þ²½£¬½«¹¤³ÌÖÐËùÓеÄobjÎļþ½øÐÐLINKÉú³É×îÖÕµÄ.exeÎļþ£¬ÄÇô´íÎó¾ÍÓпÉÄÜÔÚÁ½¸öµØ·½²úÉú£¬Ò»¸öÊDZàÒëʱµÄ´íÎó£¬Õâ¸öÖ÷ÒªÊÇÓï·¨´íÎó£¬ÁíÒ»¸öÊÇÁ¬½Ó´íÎó£¬Ö÷ÒªÊÇÖØ¸´¶¨Òå±äÁ¿µÈ¡£ÎÒÃÇËù˵µÄ±àÒëµ¥Ôª¾ÍÊÇÖ¸ÔÚ±àÒë½×¶ÎÉú³ÉµÄÿ¸öobjÎļþ£¬Ò»¸öobjÎļþ¾ÍÊÇÒ»¸ö±àÒëµ¥Ôª£¬Ò²¾ÍÊÇ˵һ¸öcpp(.c)ºÍËüÏàÓ¦µÄ.hÎļþ¹²Í¬×é³ÉÁËÒ»¸ö±àÒëµ¥Ôª£¬Ò»¸ö¹¤³ÌÓɺܶà¸ö±àÒëµ¥Ôª×é³É£¬Ã¿¸öobjÎļþÀï°üº¬Á˱äÁ¿´æ´¢µÄÏà¶ÔµØÖ·µÈ ¡£
2. ÉùÃ÷Ó붨ÒåµÄÇø±ð
º¯Êý»ò±äÁ¿ÔÚÉùÃ÷ʱ£¬²¢Ã»ÓиøËüʵ¼Êµ ......
ÔÚÌÖÂÛÈ«¾Ö±äÁ¿Ö®Ç°ÎÒÃÇÏÈÒªÃ÷°×¼¸¸ö»ù±¾µÄ¸ÅÄ
1. ±àÒëµ¥Ôª(Ä£¿é)£º
ÔÚIDE¿ª·¢¹¤¾ß´óÐÐÆäµÀµÄ½ñÌ죬¶ÔÓÚ±àÒëµÄһЩ¸ÅÄîºÜ¶àÈËÒѾ²»ÔÙÇå³þÁË£¬ºÜ¶à³ÌÐòÔ±×îŵľÍÊÇ´¦ÀíÁ¬½Ó´íÎó(LINK ERROR), ÒòΪËü²»Ïñ±àÒë´íÎóÄÇÑù¿ÉÒÔ¸ø³öÄã³ÌÐò´íÎóµÄ¾ßÌåλÖã¬Äã³£³£¶ÔÕâÖÖ´íÎó¸Ðµ½°ÃÄÕ£¬µ«ÊÇÈç¹ûÄã¾³£Ê¹ÓÃgcc£¬makefileµÈ¹¤¾ßÔÚlinux»òÕßǶÈëʽÏÂ×ö¿ª·¢¹¤×÷µÄ»°£¬ÄÇôÄã¿ÉÄܷdz£µÄÀí½â±àÒëÓëÁ¬½ÓµÄÇø±ð£¡µ±ÔÚVCÕâÑùµÄ¿ª·¢¹¤¾ßÉϱàдÍê´úÂ룬µã»÷±àÒë°´Å¥×¼±¸Éú³ÉexeÎļþʱ£¬VCÆäʵ×öÁËÁ½²½¹¤×÷£¬µÚÒ»²½£¬½«Ã¿¸ö.cpp(.c)ºÍÏàÓ¦.hÎļþ±àÒë³ÉobjÎļþ£»µÚ¶þ²½£¬½«¹¤³ÌÖÐËùÓеÄobjÎļþ½øÐÐLINKÉú³É×îÖÕµÄ.exeÎļþ£¬ÄÇô´íÎó¾ÍÓпÉÄÜÔÚÁ½¸öµØ·½²úÉú£¬Ò»¸öÊDZàÒëʱµÄ´íÎó£¬Õâ¸öÖ÷ÒªÊÇÓï·¨´íÎó£¬ÁíÒ»¸öÊÇÁ¬½Ó´íÎó£¬Ö÷ÒªÊÇÖØ¸´¶¨Òå±äÁ¿µÈ¡£ÎÒÃÇËù˵µÄ±àÒëµ¥Ôª¾ÍÊÇÖ¸ÔÚ±àÒë½×¶ÎÉú³ÉµÄÿ¸öobjÎļþ£¬Ò»¸öobjÎļþ¾ÍÊÇÒ»¸ö±àÒëµ¥Ôª£¬Ò²¾ÍÊÇ˵һ¸öcpp(.c)ºÍËüÏàÓ¦µÄ.hÎļþ¹²Í¬×é³ÉÁËÒ»¸ö±àÒëµ¥Ôª£¬Ò»¸ö¹¤³ÌÓɺܶà¸ö±àÒëµ¥Ôª×é³É£¬Ã¿¸öobjÎļþÀï°üº¬Á˱äÁ¿´æ´¢µÄÏà¶ÔµØÖ·µÈ ¡£
2. ÉùÃ÷Ó붨ÒåµÄÇø±ð
º¯Êý»ò±äÁ¿ÔÚÉùÃ÷ʱ£¬²¢Ã»ÓиøËüʵ¼Êµ ......
Õ»£ºº¯Êýµ÷ÓõÄʱºò£¬ÔÚÕ»Öб£´æ¾Ö²¿±äÁ¿ºÍº¯Êý²ÎÊýµÈ¡£µ±º¯Êý·µ»ØÊ±£¬×Ô¶¯Çå³ýÕ»¡£
×ÔÓÉ´æ´¢Çø£ºÒ²³ÆÎª¶Ñ(heap)£¬¿ÉÒÔ¿´×÷´óÁ¿µÄÄÚ´æ¶Î¡£Í¨¹ý new ²Ù×÷·û·ÖÅäµÄÄÚ´æÔÚ¶ÑÖС£³ÌÐò½áÊøÖ®Ç°²»×Ô¶¯Çå³ý×ÔÓÉ´æ´¢Çø¡£ÐèÒªÓɳÌÐòÀ´¸ºÔðÊÍ·Å£¨delete£©¡£
1.
¶ÔÖ¸ÏòÕ»ÉÏÄÚ´æµÄÖ¸Õëµ÷ÓÃdelete»áµ¼Ö³ÌÐòCrash¡£
2.
new ½øÐÐ×ÔÓÉ´æ´¢ÇøÖÐÄÚ´æ·ÖÅä¡£
Èç¹û new ²»ÄÜÔÚ×ÔÓÉ´æ´¢ÇøÖд´½¨Äڴ棬Ôò»á·µ»Ø NULLÖ¸Õ롣ÿ´Î·ÖÅäÐÂÄÚ´æÊ±Ò»¶¨Òª¼ì²éÖ¸ÕëÊÇ·ñΪ null.
delete ²Ù×÷ʵ¼ÊÉÏÊǻָ´Ö¸ÕëËùÖ¸µÄÄڴ棬ʹ֮¿ÉÒÔÔÙÓ㬶ø²»ÖÁÓÚÔì³ÉÄÚ´æÐ¹Â©(memory leak).
¶øÖ¸ÕëÈÔÈ»ÊÇÖ¸Õ룬±ØÒªÊ±»¹¿ÉÒÔÖØÐ¸³Öµ¡£
Èç¹û¶ÔÒѾÊͷŹýµÄÖ¸Õëµ÷Óà delete ²Ù×÷£¬»áµ¼Ö³ÌÐò±ÀÀ£¡£µ±É¾³ýÖ¸Õëʱ£¬¸øÖ¸Õ븳ֵ NULL(0), ¶Ô¿ÕÖ¸Õëµ÷Óà delete Êǰ²È«µÄ¡£
ÄÚ´æÐ¹Â©£ºÒ»ÖÖÇé¿öÊdzÌÐòÔÚδÊÍ·ÅËüÖ¸ÏòµÄÄÚ´æÖ®Ç°¾Í¸øÖ¸ÕëÖØÐ¸³Öµ¡£
µ±³ÌÐò¶Ô×ÔÓÉ´æ´¢ÇøÖеĶÔÏóÖ¸Õëµ÷Óà delete ʱ£¬ÔÚÊÍ·ÅÄÚ´æÖ®Ç°»á×Ô¶¯µ÷ÓöÔÏóµÄÎö¹¹º¯Êý¡£Õâ¸ö²ßÂÔ¸øÀàÌṩÁËÇåÀíµÄ»ú»á¡£
3.
¶ÔÓÚSymbianÓ¦ÓóÌÐò£¬Èç¹ûÏÈdeleteÁËÒ»¸öÖ¸ÕëÖ¸ÏòµÄÄڴ棬µ«Ã»ÓаÑÕâ¸öÖ¸Õ븳ֵΪNULL£¬È»ºóÔÚij´¦·¢ÉúÁËLeave, Çå³ýÕ»µ¯³öÖ¸Õë²¢ÔÙ´Îdelet ......
Õ»£ºº¯Êýµ÷ÓõÄʱºò£¬ÔÚÕ»Öб£´æ¾Ö²¿±äÁ¿ºÍº¯Êý²ÎÊýµÈ¡£µ±º¯Êý·µ»ØÊ±£¬×Ô¶¯Çå³ýÕ»¡£
×ÔÓÉ´æ´¢Çø£ºÒ²³ÆÎª¶Ñ(heap)£¬¿ÉÒÔ¿´×÷´óÁ¿µÄÄÚ´æ¶Î¡£Í¨¹ý new ²Ù×÷·û·ÖÅäµÄÄÚ´æÔÚ¶ÑÖС£³ÌÐò½áÊøÖ®Ç°²»×Ô¶¯Çå³ý×ÔÓÉ´æ´¢Çø¡£ÐèÒªÓɳÌÐòÀ´¸ºÔðÊÍ·Å£¨delete£©¡£
1.
¶ÔÖ¸ÏòÕ»ÉÏÄÚ´æµÄÖ¸Õëµ÷ÓÃdelete»áµ¼Ö³ÌÐòCrash¡£
2.
new ½øÐÐ×ÔÓÉ´æ´¢ÇøÖÐÄÚ´æ·ÖÅä¡£
Èç¹û new ²»ÄÜÔÚ×ÔÓÉ´æ´¢ÇøÖд´½¨Äڴ棬Ôò»á·µ»Ø NULLÖ¸Õ롣ÿ´Î·ÖÅäÐÂÄÚ´æÊ±Ò»¶¨Òª¼ì²éÖ¸ÕëÊÇ·ñΪ null.
delete ²Ù×÷ʵ¼ÊÉÏÊǻָ´Ö¸ÕëËùÖ¸µÄÄڴ棬ʹ֮¿ÉÒÔÔÙÓ㬶ø²»ÖÁÓÚÔì³ÉÄÚ´æÐ¹Â©(memory leak).
¶øÖ¸ÕëÈÔÈ»ÊÇÖ¸Õ룬±ØÒªÊ±»¹¿ÉÒÔÖØÐ¸³Öµ¡£
Èç¹û¶ÔÒѾÊͷŹýµÄÖ¸Õëµ÷Óà delete ²Ù×÷£¬»áµ¼Ö³ÌÐò±ÀÀ£¡£µ±É¾³ýÖ¸Õëʱ£¬¸øÖ¸Õ븳ֵ NULL(0), ¶Ô¿ÕÖ¸Õëµ÷Óà delete Êǰ²È«µÄ¡£
ÄÚ´æÐ¹Â©£ºÒ»ÖÖÇé¿öÊdzÌÐòÔÚδÊÍ·ÅËüÖ¸ÏòµÄÄÚ´æÖ®Ç°¾Í¸øÖ¸ÕëÖØÐ¸³Öµ¡£
µ±³ÌÐò¶Ô×ÔÓÉ´æ´¢ÇøÖеĶÔÏóÖ¸Õëµ÷Óà delete ʱ£¬ÔÚÊÍ·ÅÄÚ´æÖ®Ç°»á×Ô¶¯µ÷ÓöÔÏóµÄÎö¹¹º¯Êý¡£Õâ¸ö²ßÂÔ¸øÀàÌṩÁËÇåÀíµÄ»ú»á¡£
3.
¶ÔÓÚSymbianÓ¦ÓóÌÐò£¬Èç¹ûÏÈdeleteÁËÒ»¸öÖ¸ÕëÖ¸ÏòµÄÄڴ棬µ«Ã»ÓаÑÕâ¸öÖ¸Õ븳ֵΪNULL£¬È»ºóÔÚij´¦·¢ÉúÁËLeave, Çå³ýÕ»µ¯³öÖ¸Õë²¢ÔÙ´Îdelet ......
#include "stdio.h"
#include "math.h"
#include "time.h"
#define INTERVAL 1 ¶¨ÒåºêµÄʱ¼ä¼ä¸ôΪ1Ãë
//
void On_Time() //ÿһÃ뼤·¢µÄʼþ
{
printf("now=%s\n","JJK");
}
void Timer() //ʱÖӵĺ¯Êý
{ time_t newclk,oldclk;
while(1)
{
time(&newclk);
if(abs(difftime(newclk,oldclk))>=INTERVAL)
{
On_Time();
}
oldclk=newclk;
}
}
int main() //Ö÷º¯Êý
{
Timer();
} ......
#include "stdio.h"
#include "math.h"
#include "time.h"
#define INTERVAL 1 ¶¨ÒåºêµÄʱ¼ä¼ä¸ôΪ1Ãë
//
void On_Time() //ÿһÃ뼤·¢µÄʼþ
{
printf("now=%s\n","JJK");
}
void Timer() //ʱÖӵĺ¯Êý
{ time_t newclk,oldclk;
while(1)
{
time(&newclk);
if(abs(difftime(newclk,oldclk))>=INTERVAL)
{
On_Time();
}
oldclk=newclk;
}
}
int main() //Ö÷º¯Êý
{
Timer();
} ......