C语言中的stdlib文件包含内容
### C语言中的`stdlib.h`文件包含内容 在C语言编程中,《stdlib.h》是一个非常重要的标准库头文件,提供了多种功能,包括内存分配、随机数生成等。下面将详细介绍《stdlib.h》中的一些关键函数及其用法。 #### 1. `calloc()` **原型:** `void *calloc(unsigned n, unsigned size);` - **参数:** - `n`:要分配的元素数量。 - `size`:每个元素的大小(以字节为单位)。 - **返回值:** - 分配好的内存起始地址;如果成功分配,则该内存区域会被初始化为全零状态。 - **说明:** - `calloc()`用于分配足够存放`n`个元素且每个元素的大小为`size`字节的内存空间,并且这些内存会被初始化为零。 - **示例代码:** ```c char *str = NULL; str = calloc(10, sizeof(char)); strcpy(str, "Hello"); printf("String is %s", str); free(str); ``` #### 2. `free()` **原型:** `void free(void *p);` - **参数:** - `p`:指向要释放的内存块的指针。 - **说明:** - `free()`用于释放之前通过`malloc()`、`calloc()`或`realloc()`分配的内存。传入的`p`应为上述函数返回的指针。 - **示例代码:** ```c char *str; str = malloc(10); strcpy(str, "Hello"); printf("String is %s", str); free(str); ``` #### 3. `malloc()` **原型:** `void *malloc(unsigned size);` - **参数:** - `size`:要分配的内存块的大小(以字节为单位)。 - **返回值:** - 成功分配的内存块的起始地址;若分配失败则返回`NULL`。 - **说明:** - `malloc()`用于动态地分配一块内存空间,大小由`size`参数指定。 - **示例代码:** ```c char *str; if ((str = malloc(10)) == NULL) { printf("Not enough memory to allocate buffer"); exit(1); } strcpy(str, "Hello"); printf("String is %s", str); free(str); ``` #### 4. `realloc()` **原型:** `void *realloc(void *p, unsigned size);` - **参数:** - `p`:指向当前已分配内存的指针。 - `size`:新的内存大小(以字节为单位),可以比原来的大或小。 - **返回值:** - 新的内存起始地址;若`p`为`NULL`则与`malloc(size)`相同;若无法分配足够的内存,则返回`NULL`。 - **说明:** - `realloc()`用于改变先前通过`malloc()`、`calloc()`或`realloc()`分配的内存块的大小。 - **示例代码:** ```c char *str; str = malloc(10); strcpy(str, "Hello"); printf("String is %s Address is %p", str, str); str = realloc(str, 20); printf("String is %s New address is %p", str, str); free(str); ``` #### 5. `rand()` **原型:** `int rand(void);` - **返回值:** - 返回一个介于`0`到`RAND_MAX`之间的伪随机整数。 - **说明:** - `rand()`函数用于生成伪随机数。默认情况下,它会返回一个介于`0`到`RAND_MAX`之间的整数。 - **示例代码:** ```c int i; printf("Ten random numbers from 0 to 99\n"); for (i = 0; i < 10; i++) printf("%d ", rand() % 100); ``` #### 6. `abort()` **原型:** `void abort(void);` - **说明:** - `abort()`函数用于终止程序执行,通常用于处理不可恢复的错误情况。当调用此函数时,程序会立即退出并可能不会进行任何清理工作。 - **示例代码:** ```c printf("Call abort()\n"); abort(); ``` #### 7. `exit()` **原型:** `void exit(int status);` - **参数:** - `status`:退出状态码,通常用来表示程序正常或异常结束的状态。 - **说明:** - `exit()`函数用于正常结束程序执行。可以指定一个退出状态码来表明程序的退出状态。这个状态码通常被传递给父进程。 总结来说,《stdlib.h》头文件提供了多种强大的内存管理工具和实用函数,如动态内存分配、释放、重分配以及随机数生成等功能。掌握这些函数的正确使用对于编写高效可靠的C语言程序至关重要。