Visual studio调试: 定位代码    缩小调试范围    打断点     不断继续run    查看需要变量值与自己预期结果  判断哪里问题

 

 

#include "stdafx.h"
#include <stdio.h>
#include <string.h>

const char* str[] = { "Hello","abc","applef","man","C程序设计","指针数组","1","2","3" };
const char* pdest = "指针数组";


int main()
{
    int i;
    int ret = -1;
    const char * * p = str;
    for (i = 0; i < sizeof(str) / sizeof(char*); i++)
    {

#if 0 
        if (strcmp(*p++, pdest) == 0)
        {
            printf("we are found dest\n");
            break;
        }
#endif 


        p = p + i;  // 这样是错误的   p的变化太大 指针越界   应该是p++ 



    }
    printf("\n");        
    printf("i = %d\n", sizeof(str) / sizeof(char*));

    while (1);

    return 0;
}
// 上面这个 我开始没有想明白 后来采用gdb 查看变量的值 我才找到原因 是p++



  查看变量的值是:     添加监视  就知道变量的值什么回事     

                                                                                    GDB调试

参考文章:

https://blog.csdn.net/niyaozuozuihao/article/details/91802994

-S 编译-s 

gdb xxx 

b xx(行)   b xxx(行)             在某个区间打断点

r(run)

s 单步调试

多次重复操作 按Enter键  

Visual studio调试和在linux gdb调试的尝试_#if

 

一勤天下无难事。