效果营销型网站建设,如何备份一个网站,wordpress 固定,wordpress 知更鸟 网格1.malloc函数
void* malloc(size_t size)功能#xff1a;向内存申请字节为 size大小的空间 使用时要包含头文件#xff1a;stdlib.h 开辟成功#xff1a;返回开辟好的空间初始地址的指针 开辟失败#xff1a;返回空指针 NULL
使用举例#xff1a; (malloc和free…1.malloc函数
void* malloc(size_t size)功能向内存申请字节为 size大小的空间 使用时要包含头文件stdlib.h 开辟成功返回开辟好的空间初始地址的指针 开辟失败返回空指针 NULL
使用举例 (malloc和free要成对使用举例放在free部分
2.free函数
void free(void* p)注意free只是用来释放动态内存的如果不是动态开辟的内存空间那么free的行为将未定义 使用时要包含头文件stdlib.h
使用举例
#includestdio.h
#includestdlib.h
int main()
{int* p (int*)malloc(4*sizeof(int));int i 0;if (p NULL){perror(malloc);return 1;}for (i 0;i 4;i){*(p i) i 1;printf(%d , *(p i));}free(p);p NULL;return 0;
}注意free§以后要将p定义为空指针因为free的功能只是把内存空间释放但释放完后p还存着那块空间的地址如果不及时定义为空指针那么p就会成为野指针
3.calloc函数
void* calloc(size_t num,size_t size)功能向内存申请num个大小为size字节的空间 并且申请的每个字节都初始化为 0
举例
#includestdio.h
#includestdlib.h
int main()
{int* p (int*)calloc(4, sizeof(int));if (p NULL){perror(calloc);return 1;}int i 0;for (i 0;i 4;i){printf(%d , * (p i));}return 0;
}4.realloc函数
void* realloc(void* p,size_t size)功能调整已经开辟的动态内存的大小 p 是要调整的内存的地址 size是调整后总内存的大小 返回值为调整后内存的起始位置的地址
调整空间存在两种情况 加入两个字节的内存要调整为4个字节 1.内存够大从p 地址往后延申两个字节 2.p后面不足两个字节那么就会开辟一块新的空间来存储这 4 个字节的内容
使用举例
#includestdio.h
#includestdlib.h
int main()
{int* p (int*)malloc(4 * sizeof(int));int i 0;if (p NULL){perror(malloc);return 1;}for (i 0;i 4;i){*(p i) i 1;printf(%d , *(p i));}int* ptr (int*)realloc(p, 8 * sizeof(int));if (ptr ! NULL){p ptr;ptr NULL;}elsereturn 1;while (8 - i)/*for (i 4;i 8;i)*/{*(p i) i 1; printf(%d , *(p i));i;}free(p);p NULL;return 0;
}注意这里为了防止realloc调整空间不成功返回空指针临时创建个ptr指针来接收地址确认开辟成功时再将空间地址交给 p 并把ptr定义为空指针不能free(ptr),否则p指向的空间也会被回收