网站建设单元格边距专业的商城网站开发
2025/12/30 9:01:45 网站建设 项目流程
网站建设单元格边距,专业的商城网站开发,龙口seo,重庆市建设工程造价管理站一.动态内存管理1.mallocvoid malloc (size_t size);这个函数向内存申请一块连续可用的空间#xff0c;并返回指向这块空间的指针如果开辟成功#xff0c;则返回一个指向开辟空间的指针如果开辟失败#xff0c;则返回一个NULL#xff0c;因此malloc的返回值一定要做检查返回…一.动态内存管理1.mallocvoid malloc (size_t size);这个函数向内存申请一块连续可用的空间并返回指向这块空间的指针如果开辟成功则返回一个指向开辟空间的指针如果开辟失败则返回一个NULL因此malloc的返回值一定要做检查返回值的类型是void* 所以malloc函数并不知道开辟空间的类型具体在使用的时候由使用者自己来决定如果参数的size为0malloc的行为是标准为定义的取决于编译器注意malloc的使用需要包含头文件stdlib.h例子int main() { int*p (int*)malloc(5 * sizeof(int)); if (p NULL) { perror(malloc); return 1; } int* p (int*)calloc(5, sizeof(int)); if (p NULL) { perror(malloc); return 1; } int i 0; for (i 0; i 5; i) { printf(%d , *(p i)); } free(p); p NULL; return 0; }2.freec语言提供了另外一个函数free专门用来做动态内存的释放和回收函数原型void free (void* ptr);free函数用来释放动态开辟的内存如果参数ptr指向的空间不是动态开辟的那free函数的行为是未定义的如果参数ptr是NULL指针则函数什么事都不做使用同样需要包含头文件stdlib.h注意free的本质是把空间的使用权限还给操作系统但是p的地址还有其他地址任然存在此时的p就是野指针之后需要给p赋值空指针p NULL还有一点在释放时p必须是第一个空间的地址。3.calloc在c语言中calloc同样用来动态内存分配函数原型如下void* calloc (size_t num,size_t size);函数的功能是为num个大小为size的元素开辟一块空间并且把空间的每一个字节赋值为0与函数malloc的区别是会在返回地址之前把申请空间的每一个字节初始化为04.reallocrealloc函数让动态内存管理更加灵活我们可以使用realloc对开辟的内存空间进行灵活调整函数原型如下void* realloc (void* ptr, size_t size);ptr是要调整的内存地址size是调整之后的新大小返回值是调整之后的内存的起始位置这个函数在调整原内存空间大小的基础上还会将原来内存空间数据挪到新空间realloc调整内存空间的是存在两种情况情况一原空间之后有足够大的空间情况二原空间之后没有足够大的空间情况二会在堆区的内存中新找一块空间并且满足新的大小要求会将原来空间数据拷贝一份到新的空间然后释放旧的空间并且返回新的内存空间的起始地址情况三如果彻底调整失败会返回空指针所以接收时应该这样接收int*ptr (int*)realloc(p, 4000); if (ptr ! NULL) //调整成功 { p ptr; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询