函数名 | 栈/堆 | 释放方法 | 注意事项 |
malloc | 堆中申请内存 | free | |
calloc | 堆中申请内存 | free | 会初始化内存 可以为数组分配内存 |
realloc | 堆中申请内存 | free | 可以调整内存大小 保留原有数据 |
alloca | 栈中申请内存 | 无需释放 | 不具可移植性 |
//相关函数申明
void *realloc(void *mem_address, unsigned int newsize);
void* calloc(unsigned int num,unsigned int size);
void* malloc (size_t size);
void * alloca(size_t);
//使用方法举例
#include <stdlib.h>
char *p=(char*)calloc(1,10); //会自动初始化
strcpy(p,"Hello");
p=(char*)realloc(p,20); //扩充内存
strcat(p,"World");
printf("%s",p);
free(p);
testcode<代码实验室>栏目的每个代码实验,都提供了源代码,
可以用本公众号的<C语言编码助手>导入,直接运行,进行实验,学习和验证。
C语言编码助手下载地址 v1.33 | |
win10 x64 版本下载 | ctestcode.cn/ctestcode_win10.zip |
linux x64 版本下载 | ctestcode.cn/ctestcode_linux_x64.zip |