程序意外退出原因不明(C ++)

时间:2010-01-29 00:40:05

标签: c++

出于某种原因,每当我运行this program时,它都会在permute(permutater, length, lenth);退出。每当我注释掉该行并且函数甚至没有运行时,就不会发生这种情况。有什么帮助吗?

4 个答案:

答案 0 :(得分:10)

我注意到的第一件事 - 你没有初始化索引变量hor

int permute(string permutater,int length,int lenth)
{
    int hor,hor2,marker;
    cout << length/lenth;
    for (marker=0;marker !=(length/lenth);marker++)
        {
            hor2 = permutater[hor];     // <== hor is not initialized
            permutater[hor] = permutater[hor-1];
            permutater[hor] = hor2;
            hor--;
            cout << permutater;
        }

}

答案 1 :(得分:2)

  

hor2 = permutater [hor];

hor的价值是什么?

答案 2 :(得分:2)

我在MSVC

中遇到以下编译错误
error C4716: 'permute' : must return a value
warning C4700: uninitialized local variable 'hor' used

答案 3 :(得分:0)

还没有机会运行它,但您是否注意到return函数中缺少permute(string permutater,int length,int lenth)

另外,请#include <string>