/*内存泄漏的概念:
申请的内存,首地址丢了,找不了,再也没法使用了,也没法释放了,这块内存就被泄露了例1.
int main()
{
char *p;
p =(char *)malloc(100);//接下来可以用p指向的内存了
p="hello world";//p指向别的地方了,从此以后,再也找不到你申请的100个字节了,则动态申请的100个字节就被泄露了
return 0;
}
例2
void fun()
{
char *p;
p=(char*)malloc(100);//接下来,可以用p指向的内存了
;
;
}
int main()
{
fun();
fun();
return 0;
}//每调用一次fun泄漏100个字节
内存泄漏 解决方案1
void fun()
{
char *p;
p=(char*)malloc(100);//接下来,可以用p指向的内存了
;
;
free(p);
}
int main()
{
fun();
fun();
return 0;
}
内存泄漏 解决方案2
char* fun()
{
char *p;
p=(char*)malloc(100);//接下来,可以用p指向的内存了
;
;
return p;
}
int main()
{
char *q;
q=fun(); //可以通过q使用 .动态申请的100个字节的内存了
//记得释放
free(q);
return 0;
}
总结:申请的内存,一定不要把首地址丢了,在不用的时候一定要释放内存。 */