🤖 AI文章摘要 gemini-2.0-flash-lite

这篇文章介绍了 C 语言标准库 stdlib.h 中的一些函数,主要包括内存管理函数(malloccallocreallocfree)和随机数生成函数(srandrand)以及时间函数(time)。

  • 内存管理函数
    • malloc(size_t size):在堆区分配指定大小的内存,返回首地址,失败返回 NULL
    • calloc(size_t nmemb, size_t size):按块分配内存,并自动将内存初始化为 0,返回指针,失败返回 NULL
    • realloc(void *ptr, size_t size):重新分配指定大小的空间,并将原空间数据拷贝到新空间,然后释放原空间。如果 ptrNULL,则其功能与 malloc 相同。返回新空间的指针,失败返回 NULL
    • free(void *ptr):释放 ptr 指向的内存空间,通常与 malloc 成对使用。
  • 随机数生成函数
    • srand(unsigned int seed):设置 rand() 函数的随机数种子,通常使用 time(NULL) 的返回值作为种子。
    • rand(void):返回一个伪随机整数。如果没有设置种子,每次运行程序将得到相同的随机数序列。
  • 时间函数
    • time_t time(time_t *tloc):返回自 Epoch (1970年1月1日 00:00:00 UTC) 以来的秒数。如果 tloc 不为 NULL,则返回值也会被写入 tloc 指向的内存地址。

1. stdlib.h

1.1 数据结构

  
  

1.2 函数

  void *malloc(size_t size): 在内存的动态存储区(堆区)中分配一块长度为size, 返回开辟的堆空间首地址,失败返回NULL.
void *calloc(size_t  nmemb, size_t size): 按块分配内存,自动初始化内存为0, 返回祖宗指针void*;失败返回NULL;
void *realloc(void * ptr, size_t size): 重新分配size大小空间, 源空间数据拷贝到新空间并释放原空间. 返回祖宗指针void*;失败返回NULL;ptr=NULL时和malloc等价
void free(void *ptr):释放ptr对应地址的空间,通常和malloc()成对出现
- size: 设置新内存空间字节数
- nmeber: 第一个是分配的块个数
  
  void srand(unsigned int seed)用来设置rand()函数的种子, 常使用time(NULL)的返回值作为随机变数
int rand(void);返回一个int类型的随机数,注意若没有设置随机数种子,只能输出一个固定的随机数
time_t time(time_t  *  tloc) 返回自Epoch到tloc时间戳(秒数)
- tloc: 指定一个long型时间戳, 函数返回自Epoch到tloc的时间戳(秒数),系统当前时间, 返回值也会被写到传入参数t中