malloc 申请堆中的空间,free释放malloc申请的空间,二者要成对使用,否则会发生内存泄露。
malloc 注意事项:malloc输入是一个long型,即接收字节数;输出是一个void*指针,需要做强制转化给已知类型指针。
malloc定义:void *malloc(long NumBytes)
free主要事项:free仅仅是释放指针所指内存空间的内容,但不会对指针本身产生任何影响,经过free后的指针,其地址和内容完全不变,但其所指的内容已经完全未知,不再可用。在free完后,最好使free后的指针置为空(NULL)
对同一指针free多次,则出现错误,但是对于NULL指针,则不会发生任何问题,因为free一个为NULL的指针,函数其实什么也没做。
free 定义:voidfree(void *FirstByte)
一个比较好的例子说明malloc 和 free的用法:
参考网站:http://c.biancheng.net/cpp/html/135.html
http://blog.youkuaiyun.com/llhyy17/article/details/5375298
http://www.cnblogs.com/hanyonglu/archive/2011/04/28/2031271.html