当前位置: 首页 > news >正文

大家在申请内存时都是如何做的?[ask in smth]

大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct616:27:192005),站内

近日我在读scottmayes的effectivec++2e,看到内存管理那块
觉得以前在用new时问题太多了,但是据我不多的了解,身边的同学
们写代码时也不会太关注这些问题,往往都是要new一个东东的时候就随便
A*pa=newA;
也不会写什么set_new_handler,try-catch这类的异常处理手段。
大家在写程序的时候碰到类似的问题都是怎么作的呢?

我特别想知道在公司里面的正规做法是什么样的.因为本人一直都是个
学院派,赫赫,没在公司做过实际的项目。
望指教

--

※来源:·水木社区newsmth.net·[FROM:61.167.60.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:suowei1979] [进入讨论区] [返回顶部] 2
发信人:suowei1979(hacker&hacking),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct616:28:502005),站内

你说的那个是vc里面才有的巴
纯c++的话还是要new阿
【在jiangfei(afei)的大作中提到:】
:近日我在读scottmayes的effectivec++2e,看到内存管理那块
:觉得以前在用new时问题太多了,但是据我不多的了解,身边的同学
:们写代码时也不会太关注这些问题,往往都是要new一个东东的时候就随便
:...................

--

※来源:·水木社区newsmth.net·[FROM:221.204.79.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:jiangfei] [进入讨论区] [返回顶部] 3
发信人:jiangfei(afei),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct616:33:242005),站内

不是只有vc里有阿!
这是c++的东西,应该是各种编译器都支持的,具体可能有些不一样,
但是这种机制肯定是存在的。

【在suowei1979(hacker&hacking)的大作中提到:】
:你说的那个是vc里面才有的巴
:纯c++的话还是要new阿


--

※来源:·水木社区newsmth.net·[FROM:61.167.60.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:zsth] [进入讨论区] [返回顶部] 4
发信人:zsth(小皮),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct616:36:162005),站内

这跟项目的具体需求有关
用set_new_handler、try-catch使程序更健壮,但是使用这些异常处理结构将使
程序变大,执行速度变慢
【在jiangfei(afei)的大作中提到:】
:近日我在读scottmayes的effectivec++2e,看到内存管理那块
:觉得以前在用new时问题太多了,但是据我不多的了解,身边的同学
:们写代码时也不会太关注这些问题,往往都是要new一个东东的时候就随便
:...................

--
Becausewearecurious;
Becausewearelazy;
Becausewearenotsoable.


※来源:·水木社区newsmth.net·[FROM:59.66.116.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:poplay1] [进入讨论区] [返回顶部] 5
发信人:poplay1(我长得象八宝齐有错吗?),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct616:40:262005),站内



一般new出来,assert()是否等于0就可以了。

【在jiangfei(afei)的大作中提到:】
:近日我在读scottmayes的effectivec++2e,看到内存管理那块
:觉得以前在用new时问题太多了,但是据我不多的了解,身边的同学
:们写代码时也不会太关注这些问题,往往都是要new一个东东的时候就随便
:...................

--
┏═════════════════════┓
║欢迎光临§SEVENELEVEN§本月优惠║
║华强北店★24小时营业║
║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
┗─────悭!正!至抵!至平!─────┛


※来源:·水木社区newsmth.net·[FROM:211.151.90.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:jiangfei] [进入讨论区] [返回顶部] 6
发信人:jiangfei(afei),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct616:42:262005),站内

我想也是这样,可能写大型能够长久执行的软件,这方面就需要注意了。谢谢。

【在zsth(小皮)的大作中提到:】
:这跟项目的具体需求有关
:用set_new_handler、try-catch使程序更健壮,但是使用这些异常处理结构将使
:程序变大,执行速度变慢
:...................

--

※来源:·水木社区newsmth.net·[FROM:61.167.60.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:longda] [进入讨论区] [返回顶部] 7
发信人:longda(longda),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct616:42:522005),站内

不是吧,检查new的结果是不是0没有意义的.除非使用nothrow的new
【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:一般new出来,assert()是否等于0就可以了。


--

※来源:·水木社区newsmth.net·[FROM:218.249.41.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:poplay1] [进入讨论区] [返回顶部] 8
发信人:poplay1(我长得象八宝齐有错吗?),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct616:45:152005),站内



不管throw不throw,new出来0一定是错的,new出错一定返回0

【在longda(longda)的大作中提到:】
:不是吧,检查new的结果是不是0没有意义的.除非使用nothrow的new


--
┏═════════════════════┓
║欢迎光临§SEVENELEVEN§本月优惠║
║华强北店★24小时营业║
║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
┗─────悭!正!至抵!至平!─────┛


※来源:·水木社区newsmth.net·[FROM:211.151.90.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:psm] [进入讨论区] [返回顶部] 9
发信人:psm(阿肥),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct617:43:172005),站内


【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:标题:Re:大家在申请内存时都是如何做的?
:发信站:水木社区(ThuOct616:40:262005),站内
:
:
:
:一般new出来,assert()是否等于0就可以了。
^^^^^^^^^^^^这个只在debug下管用
:
:【在jiangfei(afei)的大作中提到:】
::近日我在读scottmayes的effectivec++2e,看到内存管理那块
::觉得以前在用new时问题太多了,但是据我不多的了解,身边的同学
::们写代码时也不会太关注这些问题,往往都是要new一个东东的时候就随便
::...................
:
:--
:┏═════════════════════┓
:║欢迎光临§SEVENELEVEN§本月优惠║
:║华强北店★24小时营业║
:║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
:┗─────悭!正!至抵!至平!─────┛
:
:
:※来源:·水木社区newsmth.net·[FROM:211.151.90.*]


--

※来源:·水木社区newsmth.net·[FROM:166.111.249.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:poplay1] [进入讨论区] [返回顶部] 10
发信人:poplay1(我长得象八宝齐有错吗?),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct618:26:022005),站内




大部分是自己写assert的。

【在psm(阿肥)的大作中提到:】
:^^^^^^^^^^^^这个只在debug下管用


--
┏═════════════════════┓
║欢迎光临§SEVENELEVEN§本月优惠║
║华强北店★24小时营业║
║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
┗─────悭!正!至抵!至平!─────┛


※来源:·水木社区newsmth.net·[FROM:202.108.158.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:FlyingBoy] [进入讨论区] [返回顶部] 11
发信人:FlyingBoy(对抗蝴蝶·奄奄一息),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct618:35:032005),站内


【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:不管throw不throw,new出来0一定是错的,new出错一定返回0
这个算对吧显然不对

--
[清江引]弃微名去来心快哉,一笑白云外。
知音三五人,痛饮何妨碍。醉袍袖舞嫌天地窄。
[山坡羊]无官何患,无钱何惮,休教无德人轻慢。
你便列朝班,铸铜山,止不过只为衣和饭,腹内不饥身上暖。
官,君莫想;钱,君莫想。


※来源:·水木社区newsmth.net·[FROM:166.111.249.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:poplay1] [进入讨论区] [返回顶部] 12
发信人:poplay1(我长得象八宝齐有错吗?),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct618:40:112005),站内



什么时候出错不返回0?

【在FlyingBoy(对抗蝴蝶·奄奄一息)的大作中提到:】
:这个算对吧显然不对


--
┏═════════════════════┓
║欢迎光临§SEVENELEVEN§本月优惠║
║华强北店★24小时营业║
║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
┗─────悭!正!至抵!至平!─────┛


※来源:·水木社区newsmth.net·[FROM:202.108.158.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:FlyingBoy] [进入讨论区] [返回顶部] 13
发信人:FlyingBoy(对抗蝴蝶·奄奄一息),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct618:43:432005),站内

抛异常的时候
【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:什么时候出错不返回0?


--
[清江引]弃微名去来心快哉,一笑白云外。
知音三五人,痛饮何妨碍。醉袍袖舞嫌天地窄。
[山坡羊]无官何患,无钱何惮,休教无德人轻慢。
你便列朝班,铸铜山,止不过只为衣和饭,腹内不饥身上暖。
官,君莫想;钱,君莫想。


※来源:·水木社区newsmth.net·[FROM:166.111.249.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:poplay1] [进入讨论区] [返回顶部] 14
发信人:poplay1(我长得象八宝齐有错吗?),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct618:44:292005),站内



......

【在FlyingBoy(对抗蝴蝶·奄奄一息)的大作中提到:】
:抛异常的时候


--
┏═════════════════════┓
║欢迎光临§SEVENELEVEN§本月优惠║
║华强北店★24小时营业║
║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
┗─────悭!正!至抵!至平!─────┛


※来源:·水木社区newsmth.net·[FROM:202.108.158.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:chice] [进入讨论区] [返回顶部] 15
发信人:chice(Oh!),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct618:49:522005),站内


堆如果被破坏了,new也可能会返回非0,程序也可能暂时不崩溃

但是这个时候程序显然早已出错,不能可靠运行了。

【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:标题:Re:大家在申请内存时都是如何做的?
:发信站:水木社区(ThuOct618:40:112005),站内
:
:
:
:什么时候出错不返回0?
:
:【在FlyingBoy(对抗蝴蝶·奄奄一息)的大作中提到:】
::这个算对吧显然不对
:
:
:--
:┏═════════════════════┓
:║欢迎光临§SEVENELEVEN§本月优惠║
:║华强北店★24小时营业║
:║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
:┗─────悭!正!至抵!至平!─────┛
:
:
:※来源:·水木社区newsmth.net·[FROM:202.108.158.*]


--

※来源:·水木社区newsmth.net·[FROM:59.66.156.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:poplay1] [进入讨论区] [返回顶部] 16
发信人:poplay1(我长得象八宝齐有错吗?),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:13:482005),站内



new里面的操作会破坏堆吗?
还是说new成功之后后面的操作破坏了堆?那和new没有关系啊。
还有,堆不是那么好破坏的吧?



【在chice(Oh!)的大作中提到:】
:堆如果被破坏了,new也可能会返回非0,程序也可能暂时不崩溃
:但是这个时候程序显然早已出错,不能可靠运行了。


--
┏═════════════════════┓
║欢迎光临§SEVENELEVEN§本月优惠║
║华强北店★24小时营业║
║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
┗─────悭!正!至抵!至平!─────┛


※来源:·水木社区newsmth.net·[FROM:202.108.158.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:chice] [进入讨论区] [返回顶部] 17
发信人:chice(Oh!),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:18:142005),站内

我就是指在有可能其他地方破坏了堆。

只要缓冲区溢出,破坏堆还是很容易的……

【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:标题:Re:大家在申请内存时都是如何做的?
:发信站:水木社区(ThuOct619:13:482005),站内
:
:
:
:new里面的操作会破坏堆吗?
:还是说new成功之后后面的操作破坏了堆?那和new没有关系啊。
:还有,堆不是那么好破坏的吧?
:
:
:
:【在chice(Oh!)的大作中提到:】
::堆如果被破坏了,new也可能会返回非0,程序也可能暂时不崩溃
::但是这个时候程序显然早已出错,不能可靠运行了。
:
:
:--
:┏═════════════════════┓
:║欢迎光临§SEVENELEVEN§本月优惠║
:║华强北店★24小时营业║
:║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
:┗─────悭!正!至抵!至平!─────┛
:
:
:※来源:·水木社区newsmth.net·[FROM:202.108.158.*]


--

※来源:·水木社区newsmth.net·[FROM:59.66.156.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:FlyingBoy] [进入讨论区] [返回顶部] 18
发信人:FlyingBoy(对抗蝴蝶·奄奄一息),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:23:172005),站内

咋了?
【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:......


--
[清江引]弃微名去来心快哉,一笑白云外。
知音三五人,痛饮何妨碍。醉袍袖舞嫌天地窄。
[山坡羊]无官何患,无钱何惮,休教无德人轻慢。
你便列朝班,铸铜山,止不过只为衣和饭,腹内不饥身上暖。
官,君莫想;钱,君莫想。


※来源:·水木社区newsmth.net·[FROM:166.111.249.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:poplay1] [进入讨论区] [返回顶部] 19
发信人:poplay1(我长得象八宝齐有错吗?),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:23:242005),站内



你说的是栈吧……

【在chice(Oh!)的大作中提到:】
:我就是指在有可能其他地方破坏了堆。
:只要缓冲区溢出,破坏堆还是很容易的……


--
┏═════════════════════┓
║欢迎光临§SEVENELEVEN§本月优惠║
║华强北店★24小时营业║
║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
┗─────悭!正!至抵!至平!─────┛


※来源:·水木社区newsmth.net·[FROM:202.108.158.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:chice] [进入讨论区] [返回顶部] 20
发信人:chice(Oh!),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:32:032005),站内

no.

imeanheap,notstack.


【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:标题:Re:大家在申请内存时都是如何做的?
:发信站:水木社区(ThuOct619:23:242005),站内
:
:
:
:你说的是栈吧……
:
:【在chice(Oh!)的大作中提到:】
::我就是指在有可能其他地方破坏了堆。
::只要缓冲区溢出,破坏堆还是很容易的……
:
:

--

※来源:·水木社区newsmth.net·[FROM:59.66.156.*]

发信人:poplay1(我长得象八宝齐有错吗?),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:34:072005),站内



缓冲区溢出就是指栈溢出吧,
堆溢出也没效果啊?顶多程序出错。
而且new操作会造成溢出吗?



【在chice(Oh!)的大作中提到:】
:no.
:imeanheap,notstack.


--
┏═════════════════════┓
║欢迎光临§SEVENELEVEN§本月优惠║
║华强北店★24小时营业║
║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
┗─────悭!正!至抵!至平!─────┛


※来源:·水木社区newsmth.net·[FROM:202.108.158.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:alingsjtu] [进入讨论区] [返回顶部] 22
发信人:alingsjtu(aling),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:41:552005),站内


【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:缓冲区溢出就是指栈溢出吧,
:堆溢出也没效果啊?顶多程序出错。
:而且new操作会造成溢出吗?
:...................
嘿嘿,google“Windows下的HEAP溢出及其利用”


--

※来源:·水木社区newsmth.net·[FROM:211.96.233.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:chice] [进入讨论区] [返回顶部] 23
发信人:chice(Oh!),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:42:172005),站内

堆和栈都会有溢出。

只是栈溢出利用起来更方便,而且发生的概率更大一些。

堆溢出也可以被利用,比如,一般来说crt或os的堆管理器要维护堆的链表,
精心构造后,可以让系统代码在试图修改链表的时候把另外一块内存也改掉。

记得以前xfocus上好像专门有文章讲过这个问题。

【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:标题:Re:大家在申请内存时都是如何做的?
:发信站:水木社区(ThuOct619:34:072005),站内
:
:缓冲区溢出就是指栈溢出吧,
:堆溢出也没效果啊?顶多程序出错。
:而且new操作会造成溢出吗?

new本身不会啊,我前面说的是用户的代码如果造成了堆溢出的情况下,new会出问题,
正常情况下new是没有任何问题的啊。


ms前面没说清楚……好久不灌水了,现在发帖一点感觉都没有-_-


:
:
:
:【在chice(Oh!)的大作中提到:】
::no.
::imeanheap,notstack.
:
:
:※来源:·水木社区newsmth.net·[FROM:202.108.158.*]


--

※来源:·水木社区newsmth.net·[FROM:59.66.156.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:alingsjtu] [进入讨论区] [返回顶部] 24
发信人:alingsjtu(aling),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:43:382005),站内


【在chice(Oh!)的大作中提到:】
:标题:Re:大家在申请内存时都是如何做的?
:发信站:水木社区(ThuOct619:42:172005),站内
:
:堆和栈都会有溢出。
:
:只是栈溢出利用起来更方便,而且发生的概率更大一些。
:
:堆溢出也可以被利用,比如,一般来说crt或os的堆管理器要维护堆的链表,
:精心构造后,可以让系统代码在试图修改链表的时候把另外一块内存也改掉。
:
:记得以前xfocus上好像专门有文章讲过这个问题。
就是那篇“Windows下的HEAP溢出及其利用”,翻译的
:【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
::标题:Re:大家在申请内存时都是如何做的?
::发信站:水木社区(ThuOct619:34:072005),站内
::
::缓冲区溢出就是指栈溢出吧,
::堆溢出也没效果啊?顶多程序出错。
::而且new操作会造成溢出吗?
:
:new本身不会啊,我前面说的是用户的代码如果造成了堆溢出的情况下,new会出问题,
:正常情况下new是没有任何问题的啊。
:
:
:ms前面没说清楚……好久不灌水了,现在发帖一点感觉都没有-_-
:
:
::
::
::
::【在chice(Oh!)的大作中提到:】
:::no.
:::imeanheap,notstack.
::
::
::※来源:·水木社区newsmth.net·[FROM:202.108.158.*]
:
:
:--
:
:※来源:·水木社区newsmth.net·[FROM:59.66.156.*]


--

※来源:·水木社区newsmth.net·[FROM:211.96.233.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:poplay1] [进入讨论区] [返回顶部] 25
发信人:poplay1(我长得象八宝齐有错吗?),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:51:212005),站内



想到了会覆盖下一个缓冲区,顶多造成Crash……
但是没想到可以用来覆盖链表区……
之后new就可以改写任意地址……

这玩意还真是防不胜防……


【在alingsjtu(aling)的大作中提到:】
:嘿嘿,google“Windows下的HEAP溢出及其利用”


--
┏═════════════════════┓
║欢迎光临§SEVENELEVEN§本月优惠║
║华强北店★24小时营业║
║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
┗─────悭!正!至抵!至平!─────┛


※来源:·水木社区newsmth.net·[FROM:202.108.158.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:poplay1] [进入讨论区] [返回顶部] 26
发信人:poplay1(我长得象八宝齐有错吗?),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct619:59:272005),站内


MS的CRT源代码里面,new直接返回HeapAlloc的结果
只要HeapAlloc成功,都是返回非0,失败都是0。
应该不存在只抛出异常,而返回值不为0的情况。

堆溢出的情况太特殊了,异常没办法处理这种情况。


【在chice(Oh!)的大作中提到:】
:堆和栈都会有溢出。
:只是栈溢出利用起来更方便,而且发生的概率更大一些。
:堆溢出也可以被利用,比如,一般来说crt或os的堆管理器要维护堆的链表,
:...................

--
┏═════════════════════┓
║欢迎光临§SEVENELEVEN§本月优惠║
║华强北店★24小时营业║
║咖喱大鱼蛋+糯米鸡+肠仔仅售⑩!║
┗─────悭!正!至抵!至平!─────┛


※修改:·poplay1于Oct620:02:44修改本文·[FROM:211.151.90.*]
※来源:·水木社区newsmth.net·[FROM:202.108.158.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:RoachCock] [进入讨论区] [返回顶部] 27
发信人:RoachCock(力挺柏雪),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct620:17:132005),站内


【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:不管throw不throw,new出来0一定是错的,new出错一定返回0
~~~~~~~~~~~~~~~~~你出错返回什么?

--
http://RoachCock.mysmth.net


※来源:·水木社区newsmth.net·[FROM:218.2.249.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:RoachCock] [进入讨论区] [返回顶部] 28
发信人:RoachCock(力挺柏雪),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct620:19:152005),站内


【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:MS的CRT源代码里面,new直接返回HeapAlloc的结果
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~你看得不够仔细
:只要HeapAlloc成功,都是返回非0,失败都是0。
:应该不存在只抛出异常,而返回值不为0的情况。
:...................

--
http://RoachCock.mysmth.net


※来源:·水木社区newsmth.net·[FROM:218.2.249.*]

[本篇全文] [回复文章] [回信给作者] [本篇作者:xiaoyueer] [进入讨论区] [返回顶部] 29
发信人:xiaoyueer(开始再次相信你),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct620:51:152005),站内


【在chice(Oh!)的大作中提到:】
:标题:Re:大家在申请内存时都是如何做的?
:发信站:水木社区(ThuOct619:42:172005),站内
:
:堆和栈都会有溢出。
:
:只是栈溢出利用起来更方便,而且发生的概率更大一些。
:
:堆溢出也可以被利用,比如,一般来说crt或os的堆管理器要维护堆的链表,
:精心构造后,可以让系统代码在试图修改链表的时候把另外一块内存也改掉。
:
:记得以前xfocus上好像专门有文章讲过这个问题。
:
:【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
::标题:Re:大家在申请内存时都是如何做的?
::发信站:水木社区(ThuOct619:34:072005),站内
::
::缓冲区溢出就是指栈溢出吧,
::堆溢出也没效果啊?顶多程序出错。
::而且new操作会造成溢出吗?
:
:new本身不会啊,我前面说的是用户的代码如果造成了堆溢出的情况下,new会出问题,
:正常情况下new是没有任何问题的啊。
:
正常情况下不会,但如果管理数据被覆盖后调用HeapAlloc在freelist的脱链操作时会产生以任意数据覆盖任意地址的可能
WindowsXPSP2加了对双向链表一致性的验检,但在某些情况下freeblock是用单链表链接的,也可能造成溢出

:
:ms前面没说清楚……好久不灌水了,现在发帖一点感觉都没有-_-
:
:
::
::
::
::【在chice(Oh!)的大作中提到:】
:::no.
:::imeanheap,notstack.
::
::
::※来源:·水木社区newsmth.net·[FROM:202.108.158.*]
:
:
:--
:
:※来源:·水木社区newsmth.net·[FROM:59.66.156.*]


--
亲爱的
不是只有你才会离开
我也会
我要去一个没有你的地方
好好的做我自己


※来源:·水木社区newsmth.net·[FROM:221.216.4.116]

[本篇全文] [回复文章] [回信给作者] [本篇作者:FlyingBoy] [进入讨论区] [返回顶部] 30
发信人:FlyingBoy(对抗蝴蝶·奄奄一息),信区:CPlusPlus
标题:Re:大家在申请内存时都是如何做的?
发信站:水木社区(ThuOct622:11:462005),站内

抛出异常的时候返回值是怎么定义的?
【在poplay1(我长得象八宝齐有错吗?)的大作中提到:】
:MS的CRT源代码里面,new直接返回HeapAlloc的结果
:只要HeapAlloc成功,都是返回非

相关文章:

  • 单例模式获取mysql连接_获取JDBC Connection单例模式
  • centos7安装源mysql5.6_centos7.4 mysql5.6 源码安装
  • 系统安装时文件系统的选择
  • python super 多重继承_Python的super()如何处理多重继承?
  • debian系统安装
  • qt修改程序图标名称_Qt for Android修改应用程序的图标和名称
  • 一些有用的打电话,写email,写信一些有用的知识
  • vscode自动快捷格式化代码_vsCode 代码格式化(Ctrl+S自动格式化代码+保存)
  • java数组定义错误_JAVA定义数组 int a[]=new int[100000] 错误
  • java 执行查询_java执行SQL语句实现查询的通用方法详解
  • linux使用学习手记[不断更新]
  • htmlparser的使用java_HTMLParser的使用
  • 访《桃花源记》之桃花源
  • java做题没思路_学java快两月,代码能看懂什么意思干什么用的,就是一到做题,脑子一片空白什么思路都没有这是为什么?...
  • 华中之旅——长沙
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Fastjson的基本使用方法大全
  • hadoop集群管理系统搭建规划说明
  • javascript 哈希表
  • JavaScript创建对象的四种方式
  • java正则表式的使用
  • js操作时间(持续更新)
  • laravel5.5 视图共享数据
  • mysql innodb 索引使用指南
  • MySQL主从复制读写分离及奇怪的问题
  • NSTimer学习笔记
  • Promise面试题2实现异步串行执行
  • python 装饰器(一)
  • 从tcpdump抓包看TCP/IP协议
  • 删除表内多余的重复数据
  • 使用API自动生成工具优化前端工作流
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #pragam once 和 #ifndef 预编译头
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (十六)一篇文章学会Java的常用API
  • (四)Controller接口控制器详解(三)
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转) Android中ViewStub组件使用
  • (转)linux 命令大全
  • (转)shell调试方法
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .NET值类型变量“活”在哪?
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...