QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 10076|回复: 8
打印 上一主题 下一主题

一张图片引发的血案~!!!!----之浅谈windows内存管理中VC遇到的问题

[复制链接]
字体大小: 正常 放大

937

主题

118

听众

3万

积分

升级  0%

  • TA的每日心情
    开心
    2026-9-17 16:51
  • 签到天数: 265 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组: 2013年数学建模国赛备

    跳转到指定楼层
    1#
    发表于 2013-7-23 17:46 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    本帖最后由 wangzheng3056 于 2013-7-25 10:57 编辑 7 q' R' U0 j# r- {, C
    % M% {, @" q, ^  v" L$ d
          一年前本人做了一个程序,大概代码中有这么一段: U& z7 R  z* U
    void function()
    - l# t% j: j1 R; g0 ]; e. s{
    : K0 V/ X; q1 t$ K8 W5 ?; u        ……- Y" {, ]  B4 o
            int  a[400][400];5 _* w" \, F2 G) V) E  j  A
            ……3 i3 B( e+ O9 ~  _' ?+ O' N
    }* C4 m' A7 y4 T, X) G4 E
           系统在执行该函数的时候,程序直接崩溃,有时候杀毒软件还出来报错。我经过几番调试使出浑身解数,这个问题还是迟迟不能解决。最终我只有问自己的老师。
    8 n* `. x4 K( P2 v2 J        当时我问到我的操作系统老师,他看到我这行程序,一语道破天机,也为我讲了一个非常精彩的故事。: D$ T8 j! {' V* B2 K; k$ g
            任何操作系统中都会有自己的内存管理机制,操作系统为进程分配内存时,有两种方式:动态分配与静态分配。, M# O8 z3 q3 V3 A
            静态分配是进程初始化时进行的,语言中静态分配机制通过static方式在语言中实现。例如:static int sum;* Q6 C" }4 V# H: l5 t2 k
            动态分配在是进程执行过程中,操作系统根据进程的需要自动分配给进程的。6 N2 C( B+ b$ f5 O& D
            故事到这里才刚刚开始~!起初windows对于内存分配的很多问题都是采用鸵鸟策略的,但是由于“一张图片引发的血案”微软才不得不重新面对这个问题。& r8 O8 Z: a" f4 v" J
            JPEG是一个压缩的图片文件,由于不同的文件解码程序是不同的,因此每个文件的内容中都有关于自己图片的解码程序,而且这些程序在解码过程中,操作系统动态为该解码程序分配内存。这时问题就出来了!!!!, L) k% V3 n$ O* h4 Y5 r
            有人在图片自带的解码程序中注入了病毒,并且windows中该解码程序的执行权限是很高的。很多人的电脑莫名其妙的中了病毒,最终发现是jpeg搞得鬼。) j" F! r8 Y$ r0 j2 E: C
             微软最终限制了进程动态内存分配的最大空间,并且把jpeg解码进程的权限调低,才解决了这个问题。& \- X7 f2 b) C- K5 z# u3 V, }
            因此我上面的那段程序出了内存溢出的问题。
    zan
    已有 2 人评分威望 体力 能力 收起 理由
    中国好好好女人 + 50 + 999 + 10 很给力!
    clarkCH + 10

    总评分: 威望 + 50  体力 + 1009  能力 + 10   查看全部评分

    转播转播0 分享淘帖0 分享分享1 收藏收藏0 支持支持0 反对反对0 微信微信

    0

    主题

    4

    听众

    30

    积分

    升级  26.32%

  • TA的每日心情
    开心
    2014-9-30 17:53
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    群组: 学术交流B

    回复

    使用道具 举报

    clarkCH        

    81

    主题

    38

    听众

    1430

    积分

  • TA的每日心情
    擦汗
    2017-3-9 17:15
  • 签到天数: 339 天

    [LV.8]以坛为家I

    自我介绍
    数学爱好者

    社区QQ达人 邮箱绑定达人 新人进步奖

    群组: web前端开发交流

    群组: 2013年数学建模国赛备

    回复

    使用道具 举报

    90

    主题

    105

    听众

    9482

    积分

  • TA的每日心情
    怒
    2017-1-30 23:35
  • 签到天数: 318 天

    [LV.8]以坛为家I

    2010挑战赛参赛者

    2011挑战赛参赛者

    2012挑战赛参赛者

    2013挑战赛参赛者

    社区QQ达人

    群组: 物联网工程师培训

    群组: Matlab讨论组

    群组: 2013认证赛C题讨论群组

    群组: 数学建模

    群组: 2013认证赛A题讨论群组

    回复

    使用道具 举报

    邪均佛        

    0

    主题

    9

    听众

    81

    积分

    升级  80%

  • TA的每日心情
    擦汗
    2015-2-6 08:21
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    自我介绍
    努力

    社区QQ达人

    回复

    使用道具 举报

    邪均佛        

    0

    主题

    9

    听众

    81

    积分

    升级  80%

  • TA的每日心情
    擦汗
    2015-2-6 08:21
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    自我介绍
    努力

    社区QQ达人

    回复

    使用道具 举报

    1104

    主题

    5

    听众

    132

    积分

    升级  16%

  • TA的每日心情
    开心
    2015-5-30 18:22
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    邮箱绑定达人

    群组: 学术交流A

    回复

    使用道具 举报

    7

    主题

    49

    听众

    3234

    积分

  • TA的每日心情
    无聊
    2016-8-1 15:33
  • 签到天数: 340 天

    [LV.8]以坛为家I

    社区QQ达人

    群组: 数学中国第二期SAS培训

    群组: 2013年美赛优秀论文解

    群组: 第四届cumcm国赛实训

    群组: 数学建模算法之matlab

    群组: 数模思想方法大全

    回复

    使用道具 举报

    KOF97        

    67

    主题

    19

    听众

    1758

    积分

  • TA的每日心情
    开心
    2014-8-22 09:43
  • 签到天数: 33 天

    [LV.5]常住居民I

    版主

    自我介绍
    无

    新人进步奖

    群组: 数学中国第二期SAS培训

    群组: 国赛讨论

    群组: 2014美赛讨论

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-10-9 09:16 , Processed in 0.341402 second(s), 102 queries .

    回顶部