为什么当我在c++中查找数组的运行和时,会得到这个错误?
Line 1034: Char 34: runtime error: addition of unsigned offset to 0x6020000000b0 overflowed to 0x6020000000ac (stl_vector.h)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:1043:34".守则是:
class Solution {
public:
vector<int> runningSum(vector<int>& nums) {
vector<int> temp(nums.size());
nums[0]=temp[0];
for(int i=0;i<nums.size();i++){
temp[i]=temp[i-1]+nums[i];
}
return temp;
}
};发布于 2022-07-07 04:16:58
nums[0]=temp[0]不正确,因为temp[0]当前为0。应该是另一回事。
另外,for循环的下界应该是i=1。
class Solution {
public:
vector<int> runningSum(vector<int>& nums) {
vector<int> temp(nums.size());
temp[0] = nums[0];
for(int i=1;i<nums.size();i++){
temp[i]=temp[i-1]+nums[i];
}
return temp;
}
};https://stackoverflow.com/questions/72892205
复制相似问题