2016-11-14 19 views
0

對於這個任務,我應該在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); 
} 
+0

您是什麼意思「將這些值視爲列表」?你想爲一個數組(多維數組)添加不同的值或其他值嗎?因此,您可以直接在調試窗口(如手錶或其他)中訪問陣列。 –

回答

1
arr[b + func3(a)] 

進一步調試修復代碼的bug之前。

這裏你有數組超出界限的訪問,這將導致未定義的行爲。 您正在嘗試訪問arr[22 + x],其中陣列的大小爲5.