栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

2021-11-02

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-11-02

C++与java在内存分配(主要指新建基本数据类型&对象时)方面的对比

C++java
int a;是定义,(如果不是声明(如extern修饰))在栈区分配空间,a是野值是定义,直接分配空间,初始化为0,保险起见赋值
float *p=new float (3.14159);是定义,(如果不是声明(如extern修饰))在堆区分配空间,不支持这种语法
Student a是定义,在栈上分配空间,a是野值,调用a编译不报错是引用,其不指向任何内存空间(或者说指向null,一块特殊的内存空间),调用a编译报错,必须在调用前让引用指向一块具体的空间,jvm一般会把它放到堆区
Student a = (*Student)malloc(…)是定义,在堆上分配空间,需要手动free不支持这种语法
Student a = new Student(…);是定义,在堆上分配空间,需要手动delete是引用,其不指向任何内存空间(或者说指向null,一块特殊的内存空间),调用a编译报错,必须在调用前让引用指向一块具体的空间,jvm一般会把它放到堆区

果然,java安全多了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396204.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号