`
izuoyan
  • 浏览: 9222977 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

大家在申请内存时都是如何做的?[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成功,都是返回非
分享到:
评论

相关推荐

    SMTH-Java.chm

    SMTH-Java

    VC代码 fterm-smth (实用代码源)

    VC代码 fterm-smth (实用代码源)VC代码 fterm-smth (实用代码源)VC代码 fterm-smth (实用代码源)VC代码 fterm-smth (实用代码源)VC代码 fterm-smth (实用代码源)VC代码 fterm-smth (实用代码源)VC代码 fterm-smth ...

    smth上的OpengL教程

    smth上的OpengL教程,很详细很方便 希望对大家有帮助

    smth

    开发移动应用时,离线存储可以确保用户在无网络环境下也能正常使用部分功能。 综上所述,HTML5的新特性极大地拓宽了网页开发的可能性,提升了用户体验。开发者应熟练掌握并灵活运用这些特性,以创建更加先进、功能...

    smth images helper-crx插件

    "smth images helper-crx插件"是一款专为浏览newsmth.net网站设计的扩展程序,主要用于增强用户体验,特别是对于那些在该网站上遇到图片显示问题的用户。这款插件的核心功能是帮助用户查看newsmth.net上的图片,因为...

    Live Capture

    增加在矩形区域模式时即选即截图(在配置-截取标签里设置),谢 buttonwood@smth 增加繁体中文语言,谢 kk_lee69@ACN * 修改 修正不能第二次录像的问题 # 发行版本: 1.1.1 发行日期: 2011-08-16 + 增加 ...

    smth.alfredworkflow:用于浏览 newsmth.net 的 alfred 工作流程

    水木社区 workflow 安装 [下载][down] [down]: 使用 浏览今日十大: smth 查找板块: smth 板块拼音 smth shuimu smth jingji 浏览板块: smth > 板块ID smth > ITExpress smth > EconForum 版本 v0.1

    对优化Ruby on Rails性能的一些办法的探究

    虽然这种方法简单直接,但并不总是最经济有效的方法,尤其是在处理高并发请求时。 2. **缓存**:利用缓存技术可以显著减轻服务器压力并加快页面加载速度。Rails内置了多种缓存机制,如页面缓存、片段缓存等,...

    Live Capture1.2.4

    增加在矩形区域模式时即选即截图(在配置-截取标签里设置),谢 buttonwood@smth 增加繁体中文语言,谢 kk_lee69@ACN * 修改 修正不能第二次录像的问题 # 发行版本: 1.1.1 发行日期: 2011-08-16 + 增加 ...

    kernel-modules-hook:内核升级后保持Arch Linux的全部功能

    modprobe: FATAL: Module smth not found in directory /lib/modules/new-kernel惹恼了modprobe: FATAL: Module smth not found in directory /lib/modules/new-kernel吗? 由于内核更新,重启后会丢失正常运行时间...

    thegame:一个非常简单的 C++ 文本冒险构建,它可能需要在代码效率和想法实现方面进行各种改进

    在这里我有各种问题要实施药水法力药水健康药水NPC 寻求非任务任务类型? 魔法康复 ? 法力? 范围? 眩晕? 特别的 ? 学什么书? 学习机会? 法术等级? 项目魔法物品? 特点像力量 dex 或 smth 这样的统计数据? ...

    smth-like-search-engine

    文件搜寻引擎 如何开始 ./mvnw -DskipTests=true clean spring-boot:run 测试方法 我决定在测试中使用简单的http客户端,而不是客户端 ...我知道您想了解我如何使用git,但是在这里我们进行1次提交

    um-smth

    在Heroku上托管基于repl的discord.py bot,以使其保持INDEFINETLY的运行 先决条件 您必须具有 , , 和的帐户(您可能已经有一个帐户)。 1.创建一个机器人并获取其令牌 在的开发人员门户中创建应用程序 打开新应用...

    Mindsware动态数据对象平台v0.2版发布

    2、flexibility和plug-in ability很强,可适用任何.net项目,只需要在项目中reference Mindsware的assembly就可以使用,其中的DBObject, MultiDBObject, DBConnection 使用起来非常方便,提供了Insert,Update,Delete...

    svg2gd:圈到gd或smth

    将文件放在文件夹中,在settings.txt中更改名称 主页/桌面/编码资料/svg2gd/test.svg主页/文件夹/文件夹/svg2gd/FILENAME.svg 使用runProgram.bat转换为gd img 将颜色10从红色更改为黑色(im lazy和idk如何编码)...

    smthbbs-1.1.1.rar

    "smth" 在这个上下文中可能是一个缩写或者特定项目的代号,但没有足够的信息来确切解读它的含义。在标签中同样使用了 "smth",这进一步确认了它可能是该软件或系统的核心标识。 由于文件列表只给出了 "smthbbs-...

    远程控制软件

    的文件都没问题,但是没有做多文件传输,只能一个 一个来。winsocket的通信方式我们作了特殊的定义, 主要有,先判断是否认证,然后传输命令的长度, 再传输命令,然后还要接收返回的命令,再把它发给相 应的...

    帮助图片帮手「smth images helper」-crx插件

    显示newsmth.net的图像 帮助显示 http://newsmth.net/ 部分图片 支持语言:中文 (简体)

    JavaScript字符的unicode编码

    // unicode: 返回一个字符的unicode编码 // 调用格式: ucode = unicode(char); // 参数: char:字符或字符串。为字符串时返回第一个字符的unicode编码 // 返回值: 整型。...// sylens@smth, 2004/12/06

    schtasks详解

    这些任务可以被安排在每天、每周、每月或是特定事件(如系统启动或用户登录)时执行。通过深入理解`schtasks`命令的各个参数,我们可以更精确地控制任务的调度和执行。 #### 命令结构概览 `schtasks`命令的基本...

Global site tag (gtag.js) - Google Analytics