API-内存操作
内存映射/解除
1 /* 2 * 参数说明 3 * (映射开始地址,映射区长度,内存权限,映射类型,文件描述符,被映射对象内容的起点) 4 * 5 * 返回值 6 * 成功 被映射区的指针 7 * 失败 (void *)-1,错误存于errno 8 */ 9 void* mmap(void* start, size_t length, int prot, int flags, int fd, off_t offset); 10 int munmap(void* start,size_t length);
动态分配内存
1 /* 2 * 函数功能 3 * 申请内存,并且初始化为0 4 * 5 * 参数说明 6 * 个数 7 * 每个内存块大小 8 * 9 * 返回值 10 * 成功 申请内存的首地址 11 * 失败 NULL 12 */ 13 void *calloc(int num, int size); 14 15 /* 16 * 函数功能 17 * 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。 18 */ 19 void *malloc(int size); 20 21 /* 22 * 该函数释放 address 所指向的内存块,释放的是动态分配的内存空间 23 */ 24 void free(void *address);
调整内存大小
1 /* 2 * 函数功能 3 * 尝试重新调整之前调用 malloc、calloc 或 realloc 所分配的 ptr 所指向的内存块的大小。 4 * 如果为空指针,则会分配一个新的内存块,且函数返回一个指向它的指针。 5 * 6 * 参数说明 7 * 需要调整的内存地址 8 * 大小 9 * 10 * 返回值 11 * 成功 调整后的内存地址 12 * 失败 NULL 13 */ 14 void *realloc(void *ptr, size_t size)