2016-04-11 4 views
-1

私は、それが回文かどうかを確認するために入力された単語を分析するプログラムを作成しようとしています。デバッグアサーションに失敗しました! (C++)

私はビットで、このビットをやっている、これはこれまでのところ私のコードです:

#include <iostream> 
#include <string> 

using namespace std; 

int main(string word) { 
cout << "Word: "; 
cin >> word; 
bool x = true; 
int length = word.length(); 
int k = length; 
    int y = 0; 
    for (int i = length-1; i >= 0; i--) { 
      int j = k - 1; 
      int l = i - j; 
      char a = word[i]; 
      char b = word[l]; 
      cout << "a: " << a << "  b: " << b << endl; 
      k = k - 2; 
    } 
    return 0; 
} 

それは私が欲しいの出力生成:

Word: marcus 
a: s  b: m 
a: u  b: a 
a: c  b: r 
a: r  b: c 
a: a  b: u 
a: m  b: s 

しかし、私はそれを実行するたびに、それは

Debug Assertion Failed! Line: 106

Expression: "(_Ptr_user & (_BIG_ALLOCATION_ALIGNMENT - 1))) == 0" && 0

私は間違っていますか?

+1

[_'intメイン(文字列){'](http://coliru.stacked-crooked.com/a/1ff8b6d038e27ce6)_こんにちは?最初に警告を修正することは非常に良い考えです。 –

+0

最終的なプログラムでは別の機能になりますが、これに関する警告は表示されませんでした。 –

+0

ああ!それはそれを修正!ありがとうございました!! –

答えて

2

cin >> word;

そのため、デバッグアサーションエラーが発生しています。

1

まず第一に、mainにはタイプstringの引数はありません。関数の本体の中に宣言してください:

int main() { 
    std::string word; 

そしていくつかのアドバイス:そのコードはかなり混乱しています!目標は、入力文字列をループして対応する文字を表示することです。そのようにしてください。位置iの文字の場合、文字列の後ろの対応するインデックスはword.length() - 1 - iです。そのように書いて始め、それが機能することを確認してください。次に別の変数にword.length()を保存してください。それを超えて、何が起こっているのかを知るのが難しくなるだけでなく、コードが改善されることもありません。

int main(string word) { 
     // ^^^^^^ 

ネジアップOS依存性結合コードからmain()関数のコールスタックを:main()に対して無効なパラメータ署名と組み合わせて

関連する問題