• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 详解C语言中free()函数与getpagesize()函数的使用

详解C语言中free()函数与getpagesize()函数的使用

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了getpagesize,free命令详解,linux free命令详解,freemarker详解,free详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

C语言free()函数:释放动态分配的内存空间
头文件:

#include <stdlib.h>
</div>

free() 函数用来释放动态分配的内存空间,其原型为:

 void free (void* ptr);
</div>

free() 可以释放由 malloc()、calloc()、realloc() 分配的内存空间,以便其他程序再次使用。

【参数说明】ptr 为将要释放的内存空间的地址。

free() 只能释放动态分配的内存空间,并不能释放任意的内存。下面的写法是错误的:

int a[10];
// ...
free(a);
</div>

如果 ptr 所指向的内存空间不是由上面的三个函数所分配的,或者已被释放,那么调用 free() 会有无法预知的情况发生。

如果 ptr 为 NULL,那么 free() 不会有任何作用。

注意:free() 不会改变 ptr 变量本身的值,调用 free() 后它仍然会指向相同的内存空间,但是此时该内存已无效,不能被使用。所以建议将 ptr 的值设置为 NULL,例如:

free(ptr);
ptr = NULL;
</div>

代码示例:

#include <stdlib.h>
int main ()
{
 int * buffer1, * buffer2, * buffer3;
 buffer1 = (int*) malloc (100*sizeof(int));
 buffer2 = (int*) calloc (100,sizeof(int));
 buffer3 = (int*) realloc (buffer2,500*sizeof(int));
 free (buffer1);
 free (buffer3);
 system("pause");
 return 0;
}

</div>

C语言getpagesize()函数:取得内存分页大小
头文件:

#include <unistd.h>
</div>

定义函数:

size_t getpagesize(void);
</div>

函数说明:返回一分页的大小,单位为字节(byte)。此为系统的分页大小,不一定会和硬件分页大小相同。

返回值:内存分页大小。

附加说明:在 Intel x86 上其返回值应为4096bytes。

范例

#include <unistd.h>
main(){
 printf("page size = %d\n", getpagesize());
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解C语言中free()函数与getpagesize()函数的使用

相关文章

  • 2017-05-28深入分析C++中deque的使用
  • 2017-05-28浅谈C语言转义字符和格式控制符
  • 2017-05-28结合C++11新特性来学习C++中lambda表达式的用法
  • 2017-05-28深入解析C++编程中的运算符重载
  • 2017-05-28C/C++实现八大排序算法汇总
  • 2017-05-28浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别
  • 2017-05-28C语言求幂计算的高效解法
  • 2017-05-28C++中Semaphore内核对象用法实例
  • 2017-05-28非常经典的C语言趣味题目
  • 2017-05-28c文件汇编后函数参数传递的不同之处

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • c++11可变参数使用示例
    • 可变参数函数
    • 显示任何进程加载的DLL文件的代码
    • C++ 面试题翻译电话号码实例代码
    • C语言 typedef:给类型起一个别名
    • C++文件读写代码分享
    • 统计输入字符各个字母出现频率的解题思路
    • 浅谈c++中的stl中的map用法详解
    • 详解C++中shared_ptr的使用教程
    • 浅析C/C++中sort函数的用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有