使用调试器查找整数值

时间:2016-11-14 04:27:25

标签: c visual-studio debugging

对于这个作业,我应该在Visual Studios中使用调试器,我有点理解如何使用它,但我无法完全弄明白。对于代码的第一部分,它要求a,b和c的所有值。我把我的调试器在它开始之前开始,然后在它结束之后立即开始。我通过使用F10键来运行它。我经历过一次,得到a = 6,b = 3,c = 6。然后,一旦我再次通过它,我得到不同的值,但我想将这些值视为列表。那可能吗?

//THIS IS THE CODE.
 #include<stdio.h>

void func1(int a, int b, int c)
{
  //Track all values of a, b, and c

  printf("%d %d %d\n",a,b,c);
  a = b + b;
  printf("%d %d %d\n",a,b,c);
}

int func2(int x)
{
//Track all values of x

 printf("%d\n",x);
for (x = 7; x < 12; x += 1)
 {
 printf("%d", x + 10);
 }

 return(x);
 }

int func3(int x)
{
 x = x + 51;
return(x);
}

int main()
{
 int a,b,c;
//Track each array index value
 int arr[5];
a = 7;
b = 3;
c = 3;
func1(5, 3, 6);
func2(c);
b = func2(c);
for (c = 0; c < 5; c += 1)
{
  arr[c] = c + 2;
}

 for (b = 22; b > 7; b += -1)
 {
  arr[b + func3(a)] = a + b + c;
  printf("%d\n", b);
 }

 for (b = 0; b < 5; b += 1)
{
  printf("%d\n", arr[b]);
}

 return(0);
 }

1 个答案:

答案 0 :(得分:1)

 arr[b + func3(a)]

在调试之前,进一步修复代码中的错误。

这里有数组越界访问,这将导致未定义的行为。 您正尝试访问arr[22 + x],其中数组的大小为5。