当我用自己的'main()'函数在vs上运行程序时,我的程序运行得很好,但是我必须在main对我隐藏的地方提交它我只知道它会将参数传递给我的函数并检查它们的返回结果。但当我试图使用传递给函数的参数时,它会给出分段错误。
代码如下:

//I don't know what 'main' is passing to this function

string ExpressionManager::infixToPostfix(string infixExpression)
{

cout<<infixExpression<<endl; // first it was giving error on below 'if' condition,
    //now i have written this statement it prints nothing but gives
     //Segmentation Fault (core dumped) error here

cout<<"Hey"<<endl //it doesn't print this line

if( infixExpression[0] == '\0' )
{
    return "";
}
int size = infixExpression.length();
if(!isValidInfixExpression(infixExpression))
    return "Invalid Expression";
      ...
      //some code here
}

有人能详细说明什么时候string类会这样做吗?

最佳答案

我想我有你的问题。请尝试以下代码:

string *p_to_void;
cout << *p_to_void;

上面的代码肯定会由于未初始化指针而导致分段错误。即使指针已初始化,它也可能指向空值,这也会导致segfault。空字符串不会导致问题,但未初始化的指针会导致问题。

关于c++ - 分段故障(核心转储)Linux,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23408853/

10-10 12:27