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

4

2 回答 2

2

你的条件应该是i < strlen(cp),不只是strlen(cp)

于 2013-10-05T19:53:18.100 回答
1

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

   for ( int i = 0; i< strlen(cp); i++ ) {
                     ^^ fix this
于 2013-10-05T19:53:37.230 回答