#include <stdlib.h>
#include <string.h>
char *a;
// 初始分配
a = (char *)malloc(sizeof(char));
// 动态扩展(数据类型长度 * 字符长度)
a = (char *)realloc(a, (int)(sizeof(char)*(strlen(a)+1024)));
// 释放内存
free(a);
- 动态分配的内存不一定完全一致,会有差异,原因是
1.为了避免碎片过多,malloc分配是有最小划分单位的,这具体得看编译器实现
2.他可能看还有空就给你继续申请空间了,反正是动态申请
3.你这不捣乱吗,具体为什么这取决于编译器实现
#include <malloc.h>
malloc_usable_size(a);