码迷,mamicode.com
首页 > 编程语言 > 详细

C/C++动态分配内存

时间:2020-06-25 11:46:53      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:通过   class   动态   sign   signed   动态分配   例子   指针函数   cal   

C:malloc和calloc来分配内存:

 

malloc函数原型

void *malloc(unsigned int size)

首先这是一个void 指针函数返回的是一个指向不定的指针,所以在调用这个函数的时候需要强转化为需要的指针类型。然后再在里面添加所需要开辟的空间大小

 

例子:

1 int * PI = NULL;
2 
3 PI = (int *)malloc(sizeof(int)); 

calloc和malloc差不多,区别就是将大小划分了一下

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

第一个参数表示要分配的个数,第二个参数表示每个个数的内存大小

 

一般推荐使用calloc因为calloc可以将分配好了的初始化为0更加安全

 

删除分配的内存:

free函数来处理

void *free(void *p)

只需要把需要释放的内存放进free中就行了。

 

重新分配内存:realloc()

void *realloc(void *p,unsigned int size);

作用是修改大小size,但是返回的是新分配的存储空间首地址,和原来的不一定相同。且只能通过指针变量引导,一旦指针指向修改,数据和内存就丢失 了。

 

 

C++:

采用new来打包处理

例子:
int *a = new int(10);

删除时直接

delete a;就行了

 

C/C++动态分配内存

标签:通过   class   动态   sign   signed   动态分配   例子   指针函数   cal   

原文地址:https://www.cnblogs.com/beautiful7/p/13191338.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!