调试断言失败了! (C ++)

时间:2016-04-11 16:43:34

标签: c++ debugging error-handling visual-studio-debugging

我正在尝试创建一个程序来分析输入的单词,看它是否是回文。

我正在做这一点,到目前为止这是我的代码:

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

它产生我想要的输出:

"createdRow": function( row, data, index ) {
            if (tableInitialized){
                flashRow( row );
            }

但是每次我运行它都会给我这个错误:

  

调试断言失败!行:106

     

表达式:“(_Ptr_user&(_ BIG_ALLOCATION_ALIGNMENT - 1)))== 0”&& 0

我做错了什么?

2 个答案:

答案 0 :(得分:2)

  

cin >> word;

结合main()的无效参数签名:

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

从操作系统相关的绑定代码中解除main()函数的调用堆栈。

这就是您收到调试断言错误的原因。

答案 1 :(得分:1)

首先,Double int1, int2, int3 = some values没有main类型的参数。在函数体内做一个声明:

string

还有一些建议:代码很混乱!目标是循环输入字符串并显示相应的字符,所以就这样做。对于位置int main() { std::string word; 的字符,字符串背面的相应索引为i。首先只需这样写,并确保它有效。然后可以将word.length() - 1 - i存储在单独的变量中。除此之外,更多变量只会让人更难看到发生了什么,并且不会使代码变得更好。