c语言中动态内存管理(1)
1.为什么会存在动态内存分配
如
1 |
|
1.像这样建立一个数组,一开始建立了这么大一个空间,可能会造成空间浪费,无法一次性用完
2.静态空间开辟的大小比较固定
3.对于空间的使用,只有我们在运行程序的时候才知道
->因此我们就需要动态内存开辟了
2. 要学习动态内存开辟,就要了解内存中的三个区
这些函数都包含在:
1 |
|
3.(1)malloc的使用
malloc函数的定义
void* malloc(size_t size)
返回一个无类型的指针,括号中包含的是开辟的字节数
开辟不成功会返回一个空指针
上代码
1 |
|
3.(2).calloc的使用
calloc函数的定义
void* calloc(size_t num,size_t size)
num是开辟的是元素的个数
size为每个元素的长度,单位是字节,1个元素多大
会将里面的元素都初始化为0
上代码
1 |
|
3.3realloc的使用
realloc函数的定义
void*realloc(void* ptr,size_t size)
p要增加的地址,逗号后面是新的大小,而非增加的大小,返回的是void*,指向的是重新调整之后的内存块
ptr为要调整的内存地址
size为调整之后的大小
1 |
|
realloc实现会出现两种情况
c语言中动态内存管理(1)
http://example.com/2021/10/03/c语言中动态内存管理(1)/