程序崩溃的原因及处理方法 |
您所在的位置:网站首页 › word突然崩溃的原因 › 程序崩溃的原因及处理方法 |
初学C语言/C++程序的编写时,可能经常会遇到程序崩溃的现象。一般来说,程序崩溃是由于内存操作不当引发的。但是具体来讲,由哪些原因可以导致程序崩溃呢?以及当程序崩溃时该如何找到错误的位置呢?本教程即是讲解这个问题。 本文的视频讲解在 C/C++学习指南(补充篇)- 单步调试 的第7,8节课。 一、程序崩溃的定位先给出一个例子,该代码有致命bug,运行时将使程序崩溃。在VC中输入以下代码: /////////////// 示例1 //////////////////// #include #include struct Object { int id; char name[32]; }; void show(Object* p) { printf("Object [%d, %s] \n", p->id, p->name); } void test(int id, const char* name) { Object* obj = NULL; show(obj); // test(id, name) ->show(p) - 每一次函数里的局部变量(含参变量)的值 - 全部变量的值
这种往往是疏忽大意造成的,因为逻辑错误非常明显。 //////////////// 示例 ////////////////// #include #include // 求两数的积 int multiply(int m, int n) { return m * n; } int main() { int a, b; int m = multiply(a, b);//name); } int main() { Object* p = (Object*)malloc(sizeof(Object)); p->id = 123; strcpy(p->name, "邵发"); free(p); // p指向的内存被释放 p->id = 12; // |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |