前言
通常情况下,定义数组一般都是直接初始化(eg:int arr1[]={1,2,3,4,5};),或者是限定数组元素个数(eg:int arr2[10]={0};)。但是这些定义数组的方式具有很大的局限性:①当实际不需要那么多数组元素的时候,就会造成空间的浪费;②当实际的需求的元素个数超出了数组的容量时,就容易造成栈溢出。针对这些问题,使用动态内存分配就能够很好地去应对,在堆上灵活开辟空间满足用户需求。
动态内存分配
malloc
函数原型:void *malloc( size_t size );
头文件:<stdlib.h>
malloc的参数是待开辟空间的总字节大小,在开辟成功之后会返回空间的起始地址,若空间不够开辟失败则会返回NULL。
注意事项:
1、将malloc后的值赋值给指针变量的时候,需进行强制类型转换,以便使得赋值符号两边类型一致,例如:
int* i = (int
本文介绍了C语言中动态内存分配的方法,包括malloc、calloc、realloc和free的使用。malloc和calloc用于分配内存,calloc还负责初始化为0。realloc用于内存扩容,可能涉及数据迁移。free则用于释放内存,避免内存泄露。文章强调了动态内存分配过程中的注意事项,如检查malloc和realloc的返回值,以及释放内存后将指针置NULL。
最低0.47元/天 解锁文章
585

被折叠的 条评论
为什么被折叠?



