2013-10-05 25 views
0

所以,我有这样的代码:无法弄清楚如何调试一个坏访问错误〜>ç

void stringCounter(char cp[], int counter[]) { 

char c; 
for (int i = 0; strlen(cp); i++) { 
    c = cp[i]; 
    // Checking to see if the variable c is alphanumeric... 
    if (isalnum(c)) { 
     if (c >= 'A' && c <= 'Z') { 
     counter[c - 'A']++; 
     } else { 
     counter[26]++; 
     } 
    } 
    } 
return; 
} 

而且我有(我列出的代码),5号线坏访问错误。我真的不知道如何解决这个错误!我尝试过制作事物指针,试图不指明事物,但真的无法得到它。通常,我可以很好地调试我的程序,但是我真的遇到了这个问题。
任何帮助表示赞赏。

+0

在其编译器和系统是你的工作?您是否启用了所有警告和调试信息(例如Linux上的'gcc -Wall -g')?你学会了如何使用你的调试器(例如'gdb')? –

+0

使用Mac XCode,是的,我知道如何调试。我只是没有在寻找正确的代码来进行调试。 –

回答

2

您的情况应该是i < strlen(cp),而不仅仅是strlen(cp)

+0

* FACEDESK *哇我现在感觉很蠢....非常感谢你的帮助。 –

1

你只是增加i没有任何边界检查

for (int i = 0; i< strlen(cp); i++) { 
        ^^ fix this