【发布时间】:2021-12-10 14:41:10
【问题描述】:
vector<int> oper(int A, int B) {
std::vector <int> arrayV;
int addition = A + B;
arrayV.push_back(addition);
int mutiplication = A * B;
arrayV.push_back(mutiplication);
int subtraction;
if(A >=B ){
subtraction = A - B;
}
else(B >A );{
subtraction = B - A;
}
arrayV.push_back(subtraction);
int division;
if(A >=B ){
division = A / B;
}
else(B >A );{
division = B / A;
}
arrayV.push_back(division);
}
//谁能告诉我我的代码哪里出错了,它一直告诉我“egmentation Fault (SIGSEGV)”,我希望arrayV能够在+、*、-、/之后存储数字;
【问题讨论】:
-
您能否发布整个代码,以及您如何调用该函数,因为我没有看到任何可疑之处?也许我错过了什么。 (我确实发现您忘记
return向量,但这并不能解释为什么会出现分段错误) -
这就是我得到的整个部分,因为我在这个向量函数()中执行了这段代码;即使我添加了return arrayV(),我也会得到一个错误代码“prog.cpp:33:5: error: expected unqualified-id before return return arrayV;”
-
@justANewbie Faiing 返回向量很可能会导致分段错误。它具有未定义的行为。
-
else(B >A );{是您的代码中实际包含的内容吗?这对我来说不合适。 -
@Embeddeder 那你一定是把
return arrayV;写错地方了。