您的位置:首页 > 房产 > 家装 > 门户网站制作定做_小程序开发文档说明_关联词有哪些三年级_淘宝引流推广平台

门户网站制作定做_小程序开发文档说明_关联词有哪些三年级_淘宝引流推广平台

2025/4/11 23:31:37 来源:https://blog.csdn.net/qq_62917398/article/details/146512082  浏览:    关键词:门户网站制作定做_小程序开发文档说明_关联词有哪些三年级_淘宝引流推广平台
门户网站制作定做_小程序开发文档说明_关联词有哪些三年级_淘宝引流推广平台

C++中的动态内存分配(分配堆空间)

    • 1. C语言与C++动态内存分配
    • 2. 使用
    • 3.malloc和new有什么区别
    • 示例代码:

1. C语言与C++动态内存分配

  • C语言

    malloc calloc realloc free 函数

  • C++

    new关键字分配堆空间
    delete关键字释放堆空间

2. 使用

  • 第一种:分配一个int大小的堆空间

    int *p=malloc(sizeof(int));
    int *p=new int; delete p;

  • 第二种:分配一个int大小的堆空间,并赋值

    int *p=malloc(sizeof(int));
    *p=999;
    int *p=new int(999); delete p;

  • 第三种:分配多个int大小的堆空间

    int p=malloc(999sizeof(int));
    int *p=new int[999]; delete []p;
    p[1]=55;
    *(p+1)=99;

  • 注意:
    第一个: new int(999)和new int[999]的区别
    第二个: delete只要new分配堆空间的时候使用了[],那么delete对应写上[]

3.malloc和new有什么区别

  • 区别1:malloc是个库函数,new是关键字
  • 区别2:free释放,delete释放

示例代码:

#include <iostream>  //C++的标准输入输出流头文件
#include <cstring>  //#include <string.h>
using namespace std; //我要使用命名空间std
/*new申请堆空间公式:new 数据类型delete释放堆空间
*/struct student
{char name[10];int age;
};int main()  
{//申请一个int大小的堆空间int *p=new int;  //int *p=malloc(sizeof(int))//申请多个int大小的堆空间int *p1=new int[10];  //int *p1=malloc(10*sizeof(int))//申请一个int大小的堆空间,给它赋初始值//()表示赋值,[]表示申请多少个类型的堆空间int *p2=new int(10);  //int *p2=malloc(sizeof(int))  *p2=10struct student *p3=new struct student;struct student *p4=new struct student[8];//使用堆空间--》C语言的知识*p=456;*p1=10;       //p1[0]=10*(p1+1)=11;   //p1[1]=11strcpy(p3->name,"张三");p3->age=18;cout<<"*p is: "<<*p<<endl;cout<<"*p2 is: "<<*p2<<endl;//释放堆空间//如果申请的时候用到了[],释放的时候就必须用[]delete p;delete []p1;delete p2;delete p3;delete []p4;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com