IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    记一个有趣的C++报错:Run-Time Check Failure #2 - Stack around the variable 'p' was corrupted

    52txr发表于 2024-11-24 21:07:00
    love 0

    我的代码如下,明明也能正常运行,但是在退出黑框框的时候报错。如下图所示。报错的内容是:Run-Time Check Failure #2 - Stack around the variable 'p' was corrupted.

    #include <iostream>
    using namespace std;
    
    // 优点1:可以自己控制读写权限
    // 优点2:可以检测数据的有效性
    
    class Person
    {
    public:
        void setName(string name)
        {
            m_name = name;
        }
        string getName()
        {
            return m_name;
        }
    
    
    private:
        string m_name;  //姓名 可读可写
        int m_age;      //年龄 只读
        int m_Idol;     //偶像 只写
    };
    
    
    int main()
    {
        Person p;
        p.setName("张三");
        cout << p.getName() << endl;
    
        system("pause");
        return 0;
    }
    

    报的错误截图

    我在网上查了很多资料。都说是内存越界造成的。

    我问了问CodeGeeX,然后它说我的代码没有问题就很离谱,虽然说我也觉得我的代码没有问题。

    CodeGeeX的回答

    但是他告诉我“由于其他部分的代码引起的”,倒是给我一点启发。

    最终检查的结果是两个cpp文件定义了相同的Person类。

    在04定义了Person Class

    在02定义了Person Class

    解决访问是把04文件里的Person换成了Person04然后就正常了。

    果然新手犯的低级错误就是多。



沪ICP备19023445号-2号
友情链接