寒江雪 发表于 2014-4-11 22:18:44

求好心人科普下C++的new 用法,感觉跟Java不一样

RT:求好心人科普下C++的new 用法,感觉跟Java不一样

仰望天上的光 发表于 2014-4-12 09:54:20

基本一样的,只不过Java里把C++里的“指针”称为“引用”。并且java中不需要手动释放new出来的对象

忠弟 发表于 2014-4-12 11:05:48

JAVA还没研究完,没能比较。。。但这个new相比于c的malloc就好用得多,使用new直接返回一个地址,若用malloc的话还需要转换数据类型限制字节大小等等,很复杂。

呵123 发表于 2014-4-12 12:10:02

new好像是C++中的运算符,用来申请动态内存的,如果释放掉,用delete运算符

寒江雪 发表于 2014-4-12 17:44:52

呵123 发表于 2014-4-12 12:10 static/image/common/back.gif
new好像是C++中的运算符,用来申请动态内存的,如果释放掉,用delete运算符

嗯,就是new int(100)和new int 感觉不一样,运行时 前者会有内存错误

寒江雪 发表于 2014-4-12 17:46:05

仰望天上的光 发表于 2014-4-12 09:54 static/image/common/back.gif
基本一样的,只不过Java里把C++里的“指针”称为“引用”。并且java中不需要手动释放new出来的对象

是的,所以感觉Java用起来简单一点,也可能是我学的太浅的缘故吧

寒江雪 发表于 2014-4-12 17:47:27

忠弟 发表于 2014-4-12 11:05 static/image/common/back.gif
JAVA还没研究完,没能比较。。。但这个new相比于c的malloc就好用得多,使用new直接返回一个地址,若用mallo ...

{:7_169:}{:7_169:}{:7_169:}{:7_169:}{:7_169:}大神。。。。

仰望天上的光 发表于 2014-4-12 18:36:18

寒江雪 发表于 2014-4-12 17:44 static/image/common/back.gif
嗯,就是new int(100)和new int 感觉不一样,运行时 前者会有内存错误

new int(100)返回的指针指向一个存储单元,这个存储单元里只有1个int,其值为100
new int 返回的指针指向一个存储单元,这个存储单元里只有100个int,其值为随机

用new int(100)出错,一般是误认为该语句是new int,接下来会产生数组越界错误

呵123 发表于 2014-4-13 09:18:03

寒江雪 发表于 2014-4-12 17:44 static/image/common/back.gif
嗯,就是new int(100)和new int 感觉不一样,运行时 前者会有内存错误

new int(100),是申请一个int 型的内存,然后给它赋值为100,new int,是申请100个int型的动态内存。

寒江雪 发表于 2014-4-13 14:38:41

仰望天上的光 发表于 2014-4-12 18:36 static/image/common/back.gif
new int(100)返回的指针指向一个存储单元,这个存储单元里只有1个int,其值为100
new int 返回的指 ...

恍然大悟,多谢指教{:7_148:}{:7_148:}{:7_148:}
页: [1]
查看完整版本: 求好心人科普下C++的new 用法,感觉跟Java不一样