温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C 存储空间的分配和释放

发布时间:2020-03-20 13:54:51 来源:网络 阅读:953 作者:微笑着奔跑 栏目:编程语言

存储空间的分配和释放

动态存储分配的数据结构

头文件  #include<stdlib.h>

用四个函数来进行动态储存分配{ malloc(),calloc(), realloc()},动态存储释放:free()。

1.malloc(),动态分配一段内存空间

void *malloc(unsigned int size)


sizeof()来计算申请空间的大小

例:int *p=(int *)malloc(sizeof(int))

申请一个Int类型长度的存储空间,并将分配的地址空间地址转化成int类型地址,赋给所定义的指针变量P.

C 存储空间的分配和释放

2.calloc(),动态分配连续内存空间

void *calloc(unsigned int n,unsigned int size);

内存申请n个长度的size字节的存储空间,并返回改存储空间的起始位置,n为元素的个数,size为元素存储长度。

例:int*p=(int*)calloc(10,sizeof(int));

相当于  int *p=(int *)mallo(sizeof(int)*10);

比如:用calloc和malloc 函数分配数组26个字符的字符数

char *ch2=(char*)calloc(26,sizeof(char));

char *ch3=(char*)malloc(sizeof(char[26]);

3.realloc改变指针指向空间的大小

void *realloc (void *prt,size_t size)

例:

改变一个浮点型空间大小为整型大小

fDouble=(double*)malloc(sizeof(double));

iInt=realloc(fDouble,sizeof(int));

程序:double 型改为short

 C 存储空间的分配和释放

4.free(),释放存储空间

void free (void *p)

无返回值

例:int *a;

*a=(int *)calloc(20,sizeof(int));

a=b;

b++;

free(a);


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI