C语言动态内存的分配

本文介绍了C语言中四种关键内存管理函数:malloc()用于动态分配内存,calloc()分配并初始化内存,realloc()调整内存大小,memset()填充内存。同时,还概述了释放内存的free()函数。
摘要由CSDN通过智能技术生成

1、分配内存

1. malloc()函数
void *malloc(unsigned int size);
//功能:分配长度为size字节的内存块
//当不再使用的时候,使用free()释放
//分配成功,返回指向被分配内存的指针;否则返回空指针NULL

例子:

void main(){
    long *buffer;
    buffer = (long*)malloc(400);	//获得一块长整型的数组空间
    free(buffer);					//释放内存空间
}
2. colloc()函数
void *calloc(unsigned n, unsigned size);
//功能:在内存的动态区存储中,分配n个长度为size的内存块。可以为一维数组开辟空间。
//当不再使用的时候,使用free()释放
//分配成功,返回指向被分配内存的指针;否则返回空指针NULL

例子:

void main(){
    long *buffer;
    buffer = (long*)calloc(20, sizeof(long));	//获得一块长整型的数组空间
    free(buffer);
}
3. realloc()函数
void *realloc(void *mem_address, unsigned int newsize);
//功能:调整mem_address指针所指向的内存区域大小为 newsize长度。
//当不再使用的时候,使用free()释放
//分配成功,返回指向被分配内存的指针;否则返回空指针NULL

mem_address指向Null时,realloc = malloc

newsize等于0时,realloc = free

4. memset()函数
void *memset(void *s, char ch, unsigned n);
//功能:设置s指向的内存,所有字节为ch,s数组的大小为n

例子:

#include <string.h>
#include <stdio.h>
int main(void){
    char s[] = "welcome to mrsoft\n";	//定义一个字符数组s
    printf("s before memset: %s\n", s);	//输出字符数组中的内容
    memset(s, '*', strlen(s)-1);		//设置s数组中的字符串内容为*
    printf("s after memset: %s\n", s);
    return 0;
}

2、释放内存

void free(void *membolock);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值