1、int* a=new int[5]需要判断内存是否分配成功,以及在不用时需要使用delete[] a进行内存释放;

2、如果不是a[5],而是a[5000000000]或者更大的话,那一般情况下,就只能使用int* a=new这种方式了。这个涉及到内存存放位置的问题,int a[]这种方式,内存是存放在栈上,比如我们函数的参数和局部变量内存也放在栈上;int* a=new这种方式,内存是存放在堆上,栈的实际内存是连续内存,因此可分配空间较小,堆可以是非连续内存,因此可以分配较大内存。因此,如果需要分配较大内存,需要分配在堆上;

3、使用int a[5]这种方式,内存大小需要用常量指定,比如这里的5。不能用int 5=10;int a[5]这种方式。但是int* a= new这种方式可以,因此在动态分配内存上,后者有非常大的优势。

C++中之a[5](栈区)和int a=new int[5](堆区)有什么区别相关推荐

  1. 栈区和堆区内存分配区别

    一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看一下内存内部的组织情况. 从上 ...

  2. stack vs heap:栈区分配内存快还是堆区分配内存快 ?

    作者 | 码农的荒岛求生 来源 | 码农的荒岛求生 有伙伴问到底是从栈上分配内存快还是从堆上分配内存快,这是个比较基础的问题,今天就来聊一聊. 栈区的内存申请与释放 毫无疑问,显然从栈上分配内存更快, ...

  3. C语言内存分配-附图详解,代码区、常量区、栈区、堆区.......

    文章目录 C语言程序的内存组成 变量以及数组开辟内存空间地址大小问题 C语言程序的内存组成 不管对于那种编程语言而言,内存管理都十分重要.对于C语言程序来说,所占用的内存主要有以下几个部分:代码区(所 ...

  4. C/C++学习日记:C语言栈区与堆区浅谈

    在编程中,内存分为五大分区:栈区内存,堆区,静态区,常量区,代码区. 看下面一个函数,你能发现它又什么问题?又该如何改正? char * getString() { char str[20] = &q ...

  5. 栈区,堆区,全局区,文字常量区,程序代码区详解(程序中不同类型数据所在区)

    一.预备知识-程序的内存分配     一个由C/C++编译的程序占用的内存分为以下几个部分     1.栈区(stack)-   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等.其   ...

  6. C++中栈区 堆区 常量区

    原文出自:http://baike.baidu.com/view/536145.htm C++中栈区 堆区 常量区(由一道面试题目而学习) 2009-04-28 21:01 #include<i ...

  7. OC中栈区与堆区的内存概念解析

    栈区是先进后出,队列是先进先出. 栈区就相当于玻璃杯,往玻璃杯里放奥利奥,第一块放入的奥利奥,肯定是最后一个拿出来. 队列就相当于掉了底的玻璃杯,最先放入的,必定最先掉出来. 网上有个更绝的比喻:队列 ...

  8. 一条进程的栈区、堆区、数据区和代码区在内存中的映射

    一条进程的栈区.堆区.数据区和代码区在内存中的映射     1>栈区:主要用来存放局部变量, 传递参数, 存放函数的返回地址..esp 始终指向栈顶, 栈中的数据越多, esp的值越小.    ...

  9. int、unsigned int、float、double 和 char 在内存中存储方式

    2017-12-28 创建人:Ruo_Xiao 实验环境:vs2010.Intel 邮箱:xclsoftware@163.com 2018-01-16 修改人:Ruo_Xiao添加对移位存储的说明. ...

最新文章

  1. evolution ubuntu邮箱_Ubuntu下使用Evolution电子邮箱客户端
  2. Linux系统调用中的参数验证
  3. 偶像剪辑,一键获取:多模态联合建模的视频人物摘要
  4. elasticsearch 6.2.3 从零开始配置
  5. Arm v8 中断处理
  6. 如何看待潘石屹搞python_潘石屹考了99分的Python,到底是一种什么存在?
  7. 和某ZYC巨佬和XXY巨佬的随机挑战2总结
  8. JQuery Datatables辅助函数
  9. vue中el-image的使用??
  10. pygame-KidsCanCode系列jumpy-part6-主角挂掉重新开始
  11. CSS进阶(2)—— width,height如此高深,难道你真懂得
  12. freenas搭建nas及san网络存储详解
  13. C#监听关注或取消关注微信服务号并获取openid和unionid
  14. Incorrect string value: '\xF0\x9F\x98\x82' for column '' at row 1
  15. 在vscode中配置和使用sass
  16. qiao-get-ip:免费获取公网ip
  17. iOS开发 判断输入语言是否是汉语
  18. 2018 Multi-University Training Contest 1 部分简单题解析
  19. 微信小程序如何设计实现
  20. 千兆以太网工程(高速接口)

热门文章

  1. 重要更新,Office Add-in将全面支持Webview2
  2. .Net Core with 微服务 - 使用 AgileDT 快速实现基于可靠消息的分布式事务
  3. 支持c#的分表分库组件-Ctrip DAL
  4. 阿星Plus:基于abp vNext开源一个博客网站
  5. 基于.NET Core的简单,跨平台,模块化的电子商务系统-SimplCommerce
  6. VS也可以这样进行快捷安装
  7. 基于.NetCore3.1系列 —— 日志记录之初识Serilog
  8. .Net Core 自定义配置源从配置中心读取配置
  9. 如何给Blazor.Server加个API鉴权?
  10. 玩转控件:对Dev中GridControl控件的封装和扩展