free和malloc的用法
来源:互联网 发布:pdf合并软件在线 编辑:程序博客网 时间:2024/05/16 14:17
free函数的用法 C语言提供的库函数:
原型: void free(void *ptr)
功 能: 释放已分配的块
程序例:
#include <string.h>
#include <stdio.h>#include <malloc.h>
int main(void)
{
char *str;
/* allocate memory for string */
str = malloc(10);
/* copy "Hello" to string */
strcpy(str, "Hello");
/* display string */
printf("String is %s\n", str);
/* free memory */
free(str);
return 0;
}
>>>>>>>free释放的只是它所值向的目标,而不能释放它本身
>>>>>>>malloc()是在堆空间分配内存,不需这块内存时用free()释放。 切记,堆上分配的内存不会自动释放!
比如:
//分配10个字节的空间,记得保存返回地址,以免造成内存垃圾不能回收
//必要时还要判断malloc函数返回值是否为NULL
char *buf = (char *)malloc(10);
//使用已分配的这10个字节空间
... ...
//使用完后记得释放,杜绝内存泄露
free(buf); malloc()是在堆空间分配内存,不需这块内存时用free()释放。 切记,堆上分配的内存不会自动释放!
比如:
//分配10个字节的空间,记得保存返回地址,以免造成内存垃圾不能回收
//必要时还要判断malloc函数返回值是否为NULL
char *buf = (char *)malloc(10);
//使用已分配的这10个字节空间
... ...
//使用完后记得释放,杜绝内存泄露
free(buf);
malloc()函数
#incluce<stdlib.h>
void *malloc(unsigned int size);
功能:在内存的动态存储区分配一个长度为size字节的连续空间,函数返回的是一个指向分配域起始地址的指针,这个指针的类型是void型。如果函数未能执行成功则返回一个空指针NULL。使用这个函数必须包含头文件stdlib.h。
free()函数
#include<stdlib.h>
void free(void *p);
功能:释放由p所指向的内存区,使这部分内存归还给系统。p是调用malloc函数的返回值。free函数无返回值。
malloc()与free()必须成对出现,使用malloc分配了一块内存,使用完毕后必须使用free函数将其释放。
例子:实现把一个字符串倒序。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *src = "hello world";
char *dest = NULL;
int len = strlen(src);
dest = (char *)malloc(len+1); // 申请len+1长度的内存空间
char *d = dest;
char *s = &src[len-1 ];
while(len--!=0)
*d++ = *s--;
d = '\0';
printf("%s\n",dest);
free(dest); //释放空间,dest为malloc的返回值
return 0;
}
- free和malloc的用法
- malloc和free用法
- malloc和free的基本概念和用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- 关于malloc和free函数的用法
- malloc()和free()的用法与详解
- malloc和free函数的用法
- malloc 和free()函数的用法:
- malloc和free的具体用法举例
- malloc/free的用法详解
- Edit Distance (O(n^2) and O(n) space)
- mysql的索引问题 AK_Key2
- 虚拟机ubuntu上网配置
- SQL Server 相关问题
- usaco 4.2.1 Drainage Ditches
- free和malloc的用法
- 利用python调用外部的dll或者so文件,碉堡了
- 基于CIELab空间色彩K-means聚类彩色图像分割
- 使用安装向导安装 SQL Server 2014(安装程序)
- 将一个Activity分割成两部分,每个部分显示一个自定义View
- socket基础知识
- win7&Cocos2dx2.2&Android环境搭建中的问题汇总
- C语言函数指针基础
- Hat's words