c/c++---之什么时候使用malloc

1.在c语言中,内存模型分为栈和堆。

2,这两种模型内存的方式是不同的,在栈中存放的变量是由系统自动管理的,在函数结束后系统会自动释放,不需要人为的进行任何操作。

3,而在堆中存放的是用户自己管理的内存,手动分配的,malloc建立,系统不会在函数体执行结束后自动释放,需要用户手动释放通过free函数。

当你对分配的空间进行自己的管理和释放需要使用malloc,或者当你的分配的空间在函数结束后还需要存在。


int * create()
{
    int *p = (int*)malloc(sizeof(int));//此时在堆中建立了存放int的空间。

    *p=2;
    returen p;
}
int main()
{
    int *a = create();//此时执行完后 刚刚在函数体内用malloc分配的空间还在,还存着2。
    printf("%d",*a);//输出2
}

 
---------------------  
作者:珠3138  
来源:CSDN  
原文:https://blog.csdn.net/u011727691/article/details/66981143  
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/zxyhhjs2017/article/details/84633708
今日推荐