微信开发网站,wordpress删除修订版,安徽网站建设seo优化,做网站前产品经理要了解什么动态内存管理同时还具有一个优点#xff1a;当程序在具有更多内存的系统上需要处理更多数据时#xff0c;不需要重写程序。标准库提供以下四个函数用于动态内存管理#xff1a;
(1) malloc#xff08;#xff09;、calloc#xff08;#xff09; 分配新的内存区域。
(…动态内存管理同时还具有一个优点当程序在具有更多内存的系统上需要处理更多数据时不需要重写程序。标准库提供以下四个函数用于动态内存管理
(1) malloc、calloc 分配新的内存区域。
(2) realloc 调整已分配的内存区域。
(3) free 释放已分配的内存区域。
上述所有函数都声明在头文件 stdlib.h 中。对象在内存中所占空间的大小是以字节数量为单位计算的。许多头文件包括 stdlib.h专门定义了类型 size_t 用来保存这种内存空间的相关信息。例如sizeof 运算符以类型 size_t 返回字节数量。
动态内存分配
两个内存分配函数 malloc和 calloc的参数不一样
void*malloc(size_t size);
函数 malloc分配连续的内存区域其大小不小于 size。当程序通过 malloc获得内存区域时内存中的内容尚未决定。
void*calloc(size_t countsize_t size);
函数 calloc分配一块内存区域其大小至少是 count_size。换句话说上述语句分配的空间应足够容纳一个具有 count 个元素的数组每个元素占用 size 个字节。而且calloc会把内存中每个字节都初始化为 0。
两个函数都返回 void 指针这种指针被称为无类型指针typeless pointer。返回指针的值是所分配内存区域中第一个字节的地址当分配内存失败时返回空指针。
原文链接 本文为云栖社区原创内容未经允许不得转载。