动态内存管理 malloc函数与free函数
创建动态内存空间函数malloc: 函数原型: - void *malloc(size_t size); 需要头文件<stdlib.h>; malloc函数向系统中申请分配size个字节的内存空间,并返回一个指向这块空间的指针。 返回值为void类型的原因:因为void是可以转换(赋值)为任意一种类型的,是由于我们申请内存空间的不确定性。 注意:申请的空间没有被初始化为零,所以所申请的空间内的数据是随机的。 如果函数调用成功,返回一个指向申请内存空间的指针,返回类型是void,所以可以被转换为任意类型的数据。 如果函数调用失败,返回值是NULL。如果设置size为0,也有可能返回为NULL,这不代表函数调用的失败。 调用malloc函数的例子: #include <stdio.h> #include <stdlib.h> int main() { int *ptr; //定义指针ptr ptr = (int *)malloc(sizeof(int)); //地址给ptr记载 (int *)可以省略 if (ptr == NULL) { printf("分配内存失败!\n"); exit(1); //程序退出 } printf("请输入一个整数:"); scanf("%d",ptr); printf("你输入的整数是:%d\n",*ptr); return 0; }