C语言基础(8)

动态内存管理

常用函数:malloc ralloc realloc free 原则:谁申请谁释放

void *calloc(size_t nmemb,size_t size)//连续申请n块m个大小的内存空间

void *malloc(size_t size)//申请m个大小的空间

void *free(void *ptr)//释放申请的空间

void *realloc(void *ptr,size_t size)//重新为我分配上述两个函数申请的空间

用malloc实现动态长度的数组存储:

int main()
{
    int i,num = 5;
    int *p = NULL;
    p = malloc(sizeof(int)*num);
    for(i = 0 ; i<num ; i++)
        scanf("%d",&p[i]);
    for(i = 0 ; i<num ; i++)
        printf("%d ",p[i]);
    printf("\n");
    exit(0);
}

用free释放空指针不会报错,用free释放指针后,如果再次使用指针会变成野指针。

typedef:为已有的数据类型改名
typedef 已有的数据类型 新名字
例如:
typedef int ARR[6] //是给int[6]改名,而不是给int改名
ARR a --> int a[6]

typedef struct
{
int i;
float f;
}NODE,*NODEP;//为结构体改名

typedef int FUNC(int)
FUNC f; --> int f(int);//为函数改名

typedef int *FUNC(int)
FUNC f; --> int *f(int);//为指针函数改名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值