用C++编写的如下程序运行时停止工作是什么原因?怎么解决?

你笑一点一滴漾开 2017-03-01 06:09:13
c++ VS2015。运行时就出现如图的情况,求解原因和解决方法!
...全文
4162 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-03-02
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
小灸舞 2017-03-02
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
flying_music 2017-03-01
  • 打赏
  • 举报
回复
mix函数里,第二个for循环,最后应该是j++,不是i++,还有兄弟,下次提问最好贴代码,不要贴图片 如有问题欢迎继续追问,没问题请及时结贴,谢谢
弯曲时空Crape 2017-03-01
  • 打赏
  • 举报
回复
我后面那段代码写错了,应该是

    int **M, m, n;
    cin>>m>>n;
    M=new int*[m];
    for(int j=0;j<m;j++)
    {
        M[j]=new int[n];
    }
弯曲时空Crape 2017-03-01
  • 打赏
  • 举报
回复
这是你滥用指针的毛病。 的确,指针能够参与加减法运算,但我不建议那样去做,因为那会让你对数组的地址位置变得很凌乱。正确的方法是,把指针当作是数组名去对待。 关于数组和指针,我的对待方法是: 1、如果的确需要指定的元素数量,那么直接开静态一维数组。 2、如果元素数目需要通过输入来确定,用下面的方法:

    int *a, n;
    cin>>n;
    a=new int[n];
3、多维数组用多重指针,而不是设置成静态数组:

    int **M, m, n;
    cin>>m>>n;
    M=new int[m];
    for(int j=0;j<m;j++)
    {
        M[j]=new int[n];
    }
如果不知道最后如何清除动态内存区也没关系,初学者都会碰到这个问题,这个可以暂时不用理会,因为我们的操作系统能够在程序结束时自动释放它们。

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧