有谁知道,为什么下面的代码崩溃,用g ++编译?
#include <iostream>
unsigned long getSumDivisors(const unsigned long number) {
unsigned long sum = 0;
for(unsigned long i = 0; i < number; ++ i) {
if(number % i == 0) {
sum += i;
}
}
return sum;
}
int main() {
std::cout << getSumDivisors(5);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我删除sum + = i; 它不会崩溃.
我试着在windows和linux linaro下编译它
g ++(Ubuntu/Linaro 4.7.3-1ubuntu1)4.7.3版权所有©2012 Free Software Foundation,Inc.这是免费软件; 查看复制条件的来源.没有保修; 甚至不适用于适销性或特定用途的适用性.
和
g ++(tdm-2)4.8.1版权所有(C)2013 Free Software Foundation,Inc.这是免费软件; 查看复制条件的来源.没有保修; 甚至不适用于适销性或特定用途的适用性.