关于linux下c++的“浮点数例外(核心已转储)”问题
如题。
写了一个程序如下,然后main函数里循环执行:
void randomG(vector<int>& vec){
vec.clear();
int a = rand()%500;
int b=0, c=0;
while((b=rand()%500) ==a){}
c=rand()%100;
vec.push_back(a);
vec.push_back(b);
vec.push_back(c);
}
int main(int argc, char** argv){
vector<int> vec;
srand((unsigned)time(NULL));
while(/*condition*/){
randomG(vec);
print(vec);
/* other statments */
}
}
差不多是这样。但编译通过后运行一段时间后出现“浮点数异常(核心已转储)”这个错误,并且有时出现有时不出现,并且不一定在什么时候出现,这是什么问题?
顺便问一下,为什么srand((unsigned)time(NULL))这句话放在main()函数里就可以产生随机数,放在randomG()函数里就只产生相同的数?
谢谢各位了!