V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
810244966
V2EX  ›  程序员

MFC 程序一运行就提示内存不足

  •  
  •   810244966 · 2019-07-03 23:45:31 +08:00 · 3867 次点击
    这是一个创建于 1971 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天暑假小学期实训,老师讲了下 MFC,下午我便按照老师讲的东西和百度把我以前的练习弄进 MFC 里去了,结果一运行就提示内存不足,和老师一块弄了近一个小时,也没找出问题来,各位 V 友能帮助下吗?

    今天还是第一天学 MFC,一个很简单的 MFC 程序。 单步调试一直在 MFC 给好的一个函数循环。 用的是 VS2019 带.VS 隐藏文件夹的代码 http://119.3.249.77/MFCExpress.zip 不带.VS 文件夹的代码 http://119.3.249.77/不带.vs 文件.zip

    第 1 条附言  ·  2019-07-04 00:25:51 +08:00
    应 V 友所说搞了个网盘存起来,(我的 1m 的小水管太慢了)

    不带.vs 文件链接: https://pan.baidu.com/s/1IkE1aofXtZgtPvBVMyFDOg
    提取码:ifez


    带.vs 文件链接: https://pan.baidu.com/s/1DU2u64P-imTySmbcG61bnA
    提取码:y0ve
    第 2 条附言  ·  2019-07-04 10:10:18 +08:00
    这个问题已经解决了,果然是那个指针的问题, 我把全局指针改成全局变量就好了,只是还是不清楚这个指针为什么会出这个问题(还没学过操作系统和数据结构)
    第 3 条附言  ·  2019-07-04 10:10:51 +08:00
    这个问题已经解决了,果然是那个指针的问题, 我把全局指针改成全局变量就好了,只是还是不清楚这个指针为什么会出这个问题(还没学过操作系统和数据结构)
    10 条回复    2019-07-04 11:50:53 +08:00
    hoyixi
        1
    hoyixi  
       2019-07-03 23:49:52 +08:00
    放个网盘多好,你这速度让别人下得费劲
    ysc3839
        2
    ysc3839  
       2019-07-03 23:58:08 +08:00 via Android
    先检查一下是不是关闭了 Windows 的虚拟内存?
    minmini
        3
    minmini  
       2019-07-04 00:14:38 +08:00 via Android   ❤️ 3
    看成了小学实训🤣🤣
    cmheia
        4
    cmheia  
       2019-07-04 00:55:03 +08:00
    竟然拿个全局指针指向栈变量……
    ysc3839
        5
    ysc3839  
       2019-07-04 00:56:43 +08:00 via Android
    另外你上传文件不需要带上 .vs 里面的内容,那都是缓存数据。
    810244966
        6
    810244966  
    OP
       2019-07-04 08:11:55 +08:00
    @cmheia 被发现了,之前为了方便,也怕用函数传递,改动 MFC 自带的函数头,这个函数就出问题了,就直接用了这个全局指针。 是这个的问题吗? 之前我也感觉这个指针会出问题
    810244966
        7
    810244966  
    OP
       2019-07-04 08:12:53 +08:00
    @ysc3839 哦哦,我之前怕这个是 vs 版本的的什么东西,就索性都上传了
    chjy0651
        8
    chjy0651  
       2019-07-04 10:25:45 +08:00
    全局指针指向了局部变量,局部变量所在函数执行完生命周期就结束了,局部变量析构,内存被释放,这时全局指针指向的就是一个无效的地址,也就是野指针。
    另外:这么个问题,对于初学者就算了,你老师弄了 1 个多小时没找到原因就过分了。
    810244966
        9
    810244966  
    OP
       2019-07-04 11:06:42 +08:00
    @chjy0651 哦哦,怪不得,昨天调试的时候刚开始指针里面的值还正常,后来值经过一个 CString 到 string 的转换后就变的异常了,我和老师一直都以为是 CString 到 string 这个转换有问题,(刚开始这个转换一直报错,网上的方法都试了下,我的是宽类型的 CString,转换语句就一直报错,还是在网上找到了个有效方法)
    wxl1380610
        10
    wxl1380610  
       2019-07-04 11:50:53 +08:00
    野指针 比较难查
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5584 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 07:55 · PVG 15:55 · LAX 23:55 · JFK 02:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.