首先,stdlib.h
是C语言标准库中的一个头文件,提供了一组函数来执行与内存分配、进程控制、字符串转换、类型转换等有关的一般实用程序。下面是几个常用的函数:
1. malloc()
在堆上分配指定字节大小的内存。返回指向分配内存的指针。如果分配失败,返回NULL
。
函数原型:
void *malloc(size_t size);
示例:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr;
int n = 5;
// 分配动态内存
ptr = (int*)malloc(n * sizeof(int));
if (ptr == NULL) {
printf("动态分配内存失败");
exit(0);
}
//赋值
for (int i = 0; i < n; i++) {
ptr[i] = i;
}
//显示结果
for (int i = 0; i < n; i++) {
printf("%d ", ptr[i]);
}
// 释放内存
free(ptr);
return 0;
}
在示例中,我们首先声明了一个整型指针ptr
,然后使用malloc()
函数分配了5个整型大小的动态内存,并将该内存的起始地址赋值给ptr
指针。接着,通过循环对这段新分配的内存进行了赋值,并输出结果,最后使用free()
函数释放了动态内存。
2. calloc()
在堆上分配指定字节大小的内存。该函数返回指向分配内存的指针。并将内存块清零。如果分配失败,返回NULL
。
函数原型:
void *calloc(size_t count, size_t size);
示例:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr;
int n = 5;
// 分配动态内存并清零
ptr = (int*)calloc(n, sizeof(int));
if (ptr == NULL) {
printf("动态分配内存失败");
exit(0);
}
// 赋值
for (int i = 0; i < n; i++) {
ptr[i] = i;
}
// 显示结果
for (int i = 0; i < n; i++) {
printf("%d ", ptr[i]);
}
// 释放内存
free(ptr);
return 0;
}
在示例中,我们同样使用了一个整型指针ptr
,但是使用的是calloc()
函数来为其分配5个整型大小的动态内存。calloc()
函数会将分配的内存块清零。接着,通过循环对这段新分配的内存进行了赋值,并输出结果,最后使用free()
函数释放了动态内存。
除了上述两个示例中提到的函数,stdlib.h
头文件还包含了许多其他的函数,例如realloc()
、exit()
、rand()
等等。这些函数可以帮助我们完成许多常见的任务,代码中使用这些函数能够使我们的编程更加高效、简洁、清晰。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C 标准库 stdlib.h - Python技术站