fbpx
维基百科

C动态内存分配

C动态内存分配是在C语言中为了实现动态内存分配而进行的手动内存管理。这种管理是通过C標準函式庫中的mallocrealloccallocfree 等函数进行的。[1][2]

C++ 为了兼容 C 语言也提供这些函数,但是更推荐使用 newdelete 操作符来完成类似的操作。[3]

malloc 所实际使用的内存分配机制有很多不同的实现,执行时间和内存消耗各有不同。

函数概述

C 动态内存分配函数在头文件 stdlib.h 中声明(C++ 中对应的头文件名称为 cstdlib)。[1]

函数 描述
malloc 分配指定数量的字节
realloc 调整指定内存块的大小,必要时会重新分配
calloc 分配指定数量的字节,并初始化为 0
free 释放指定的内存块

类型安全

malloc 所执行的内存分配基于字节数而不是类型,其返回类型为 void 指针(void *),表示该指针所指向区域的数据类型未知。C++ 由于其强类型系统,实际使用该指针时需要进行强制类型转换,而 C 语言中则不必进行。

int * ptr; ptr = malloc(10 * sizeof(int)); /* 不进行强制类型转换 */ ptr = (int *)malloc(10 * sizeof(int)); /* 进行强制类型转换 */ 

另见

参考资料

  1. ^ 1.0 1.1 ISO/IEC 9899:1999 specification (PDF). . p. 313, § 7.20.3 "Memory management functions" [2018-07-25]. (原始内容 (PDF)于2018-01-27) (英语). 
  2. ^ Godse, Atul P.; Godse, Deepali A. Advanced C Programming. p. 6-28: Technical Publications. 2008: 400. ISBN 978-81-8431-496-0 (英语). 
  3. ^ Stroustrup, Bjarne. Programming: Principles and Practice Using C++. 1009, §27.4 Free store: Addison Wesley. 2008: 1236. ISBN 978-0-321-54372-1 (英语). 

c动态内存分配, 是在c语言中为了实现动态内存分配而进行的手动内存管理, 这种管理是通过c標準函式庫中的malloc, realloc, calloc, free, 等函数进行的, 为了兼容, 语言也提供这些函数, 但是更推荐使用, delete, 操作符来完成类似的操作, malloc, 所实际使用的内存分配机制有很多不同的实现, 执行时间和内存消耗各有不同, 目录, 函数概述, 类型安全, 另见, 参考资料函数概述, 编辑c, 动态内存分配函数在头文件, stdlib, 中声明, 中对应的头文件名称为, cst. C动态内存分配是在C语言中为了实现动态内存分配而进行的手动内存管理 这种管理是通过C標準函式庫中的malloc realloc calloc free 等函数进行的 1 2 C 为了兼容 C 语言也提供这些函数 但是更推荐使用 new delete 操作符来完成类似的操作 3 malloc 所实际使用的内存分配机制有很多不同的实现 执行时间和内存消耗各有不同 目录 1 函数概述 2 类型安全 3 另见 4 参考资料函数概述 编辑C 动态内存分配函数在头文件 stdlib h 中声明 C 中对应的头文件名称为 cstdlib 1 函数 描述malloc 分配指定数量的字节realloc 调整指定内存块的大小 必要时会重新分配calloc 分配指定数量的字节 并初始化为 0free 释放指定的内存块类型安全 编辑malloc 所执行的内存分配基于字节数而不是类型 其返回类型为 void 指针 void 表示该指针所指向区域的数据类型未知 C 由于其强类型系统 实际使用该指针时需要进行强制类型转换 而 C 语言中则不必进行 int ptr ptr malloc 10 sizeof int 不进行强制类型转换 ptr int malloc 10 sizeof int 进行强制类型转换 另见 编辑缓冲区溢出 記憶體保護 可变长数组参考资料 编辑 1 0 1 1 ISO IEC 9899 1999 specification PDF p 313 7 20 3 Memory management functions 2018 07 25 原始内容存档 PDF 于2018 01 27 英语 Godse Atul P Godse Deepali A Advanced C Programming p 6 28 Technical Publications 2008 400 ISBN 978 81 8431 496 0 英语 Stroustrup Bjarne Programming Principles and Practice Using C 1009 27 4 Free store Addison Wesley 2008 1236 ISBN 978 0 321 54372 1 英语 这是一篇關於電腦程式語言的小作品 你可以通过编辑或修订扩充其内容 查论编 取自 https zh wikipedia org w index php title C动态内存分配 amp oldid 75045423, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。