无法弄清楚如何调试错误的访问错误〜> C

时间:2013-10-05 19:51:33

标签: c debugging

所以,我有这段代码:

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行(我列出的代码中)有一个错误的访问错误。我真的不知道如何解决这个错误!我试过制作指针,尝试不做指针,但实在无法得到它。通常,我可以很好地调试我的程序,但我真的遇到了这个问题 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您只是在没有任何边界检查的情况下递增i

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