添加调试日志,bug消失

参考:就删了个printf,代码崩了!

1、运行报错代码
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void func1()
{
    int arr[10];
    memset(arr, 1, sizeof(arr));
}

void func2()
{
    int index;
    int* arr = (int*) malloc(5);
    arr[index] = 55;
}

int main()
{
    func1();
    func2();

    return 0;
}
2、添加打印日志,段错误消失
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void func1()
{
    int arr[10];
    memset(arr, 1, sizeof(arr));
}

void func2()
{
    int index;
    int* arr = (int*) malloc(5);
    arr[index] = 55;
}

void printLog()
{
    printf("Hello world\n");
}

int main()
{
    func1();
    printLog();
    func2();

    return 0;
}
3、原因:

未添加打印日志时,index的值是func1中残留的值

4、扩展问题:

1)printf中没加'\n'时,必定崩溃,func2函数中index一定是0x01010101;

2)在func1函数中加printf("Hello world\n");必定崩溃,func2函数中index一定是0x01010101;

3)当func1函数中arr数组大小是10时,index才必定是0x01010101;当为其他值时,index也是随机值;

4)index是0x01010101必定崩溃,是其他随机值时,怎么不崩溃?

相关推荐
沙尘暴炒饭16 小时前
关于uni-forms组件的bug【提交的字段[‘*‘]在数据库中并不存在】
bug
Kisorge1 天前
【C语言】代码BUG排查方式
c语言·开发语言·bug
安卓机器2 天前
探索 Python编程 调试案例:配置日志记录器查看程序运行bug
bug
树懒_Zz4 天前
记录 io.springfox 3.0.0 整合 spring boot 2.6.x 由于 springfox bug 引发问题
windows·spring boot·bug
每天进步一大步4 天前
webSokect安卓和web适配的Bug 适用实时语音场景
android·前端·bug·web
JWASX4 天前
【BUG记录】Apifox 参数传入 + 号变成空格的 BUG
java·bug·urlencoder·urldecoder
初遇你时动了情4 天前
解决react 路由切换,页面闪屏的bug
javascript·react.js·bug
老赵的博客4 天前
QString转const char* bug
bug
andlbds5 天前
解决PCL库中pcl::VoxelGrid降采样Bug
c++·bug
乌漆嘎嘎黑5 天前
XIO: fatal IO error 22 (Invalid argument) on X server “localhost:10.0“【小白找bug】
pytorch·python·bug·matplotlib·mobaxterm