前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C与C++申请堆内存的不同

C与C++申请堆内存的不同

作者头像
我与梦想有个约会
发布2023-10-20 16:40:03
1190
发布2023-10-20 16:40:03
举报
文章被收录于专栏:jiajia_dengjiajia_deng

C 没有关键字可以申请堆内存,只提供了一些库函数如malloc、calloc、realloc等。而C++提供了一个一系列新的关键字来处理堆内存,那就是new和delete,下面示例代码分别编写了C和C++各种申请内存的方式。

代码语言:javascript
复制
#if __cplusplus
#include 
using namespace std;
#else
#include <stdio.h>
#include <stdlib.h>
#endif
 
 
int main(int argc, char* argv[])
{
#if __cplusplus
// 申请单变量,可直接使用小括号初始化
int* p = new int(5);
// 申请数组
int* pa = new int[10];
// 申请指针数组
char **pp = new char*[5];
// 申请一个两行三列的数组指针
int (*pAp)[3] = new int[2][3];
 
// 释放单个变量空间
// 释放数组变量空间,无论数据纬度是多少,都只需要一个[]
delete p;
delete [] pa;
delete pp;
delete pAp;
#else
// 申请单变量
int* p = (int*)malloc(sizeof(int));
printf(“%d\n”, *p);
// 申请数组
int* pa = (int*)malloc(sizeof(int) * 10);
// 申请指针数组
char **pp = (char**)malloc(sizeof(char*) * 5);
 
// 无论单变量还是数组等,均传递首地址即可
free(p);
free(pa);
free(pp);
#endif
 
#if __cplusplus
getchar();
#else
system(“pause”);
#endif
 
return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档