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 に答える