- 27
- 0
在一个循环的语句中出现Segmentation fault: 11的错误
问题出现的平台版本及自己尝试过哪些方法
平台版本: MacOSX 10.14
尝试过的方法: 查看是否有内存未被释放;查看是否有越界访问
相关代码
isOperator 定义处
bool BerryMath::isOperator(char c)
{
return (
c == '+' || c == '-' || c == '*' || c == '/' || c == '%' ||
c == '^' || c == '|' || c == '&'
);
}
出错函数的内容
Segmentation fault: 11出现的位置再注释// Get the first value后面
void BerryMath::expr::parse_expr(std::string s)
{
if (p != 0x0 && --p->use == 0) {
delete p;
}
// Remove blank
int i = 0;
while (i < s.length() && BerryMath::isSpace(i)) {
i++;
}
std::string token = "";
token = "";
// Get the first value
while (i < s.length() && !BerryMath::isOperator(s[i])) {
token += s[i];
i++;
}
std::string v = token;
std::cout << token << std::endl;
// std::cout << token << std::endl;
token = "";
// Get the operator
while (i < s.length() && BerryMath::isSymbol(s[i])) {
token += s[i];
i++;
}
std::string op = token;
// Remove blank
while (i < s.length() && BerryMath::isSpace(s[i])) {
i++;
}
// Get the next operator
while (i < s.length() && BerryMath::isSymbol(s[i])) {
token += s[i];
i++;
}
std::string nextOp = token;
// Get the next expression
token = "";
for ( ; i < s.length() ; i++) {
token += s[i];
}
BerryMath::expr test(op,v);
if (!token.empty()) {
BerryMath::expr a("");
a.parse_expr(token);
*this = BerryMath::expr(
nextOp,
test,
a
);
} else {
*this = BerryMath::expr(
op,
v
);
}
// std::cout << *this << std::endl;
}
我期望语法树创建成功,然而却出现了Segmentation fault: 11的错误
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
