我所看到的一切都说明了我如何获得一个随机数的合理参数种子。
int seed = time(NULL);
段错误。也一样
time_t seed = time(NULL);
int seed = (int)time(NULL);
等等等等
有什么想法吗?
我所看到的一切都说明了我如何获得一个随机数的合理参数种子。
int seed = time(NULL);
段错误。也一样
time_t seed = time(NULL);
int seed = (int)time(NULL);
等等等等
有什么想法吗?
唯一立即想到的是有人重新定义NULL
为非零。如果您传递一个非空指针,它将尝试写入该内存,这可能会导致段错误。
快速检查是尝试time(0)
。
如果失败,它可能是由其他地方的损坏引起的,在这种情况下最好的办法是使用调试器单步执行它。
还要确保您已包含正确的标题。在整数(遵循早期标准的编译器中参数的默认值)与指针大小不同的系统中,您可能会导致堆栈未对齐。我在一些 64 位系统上看到过这种效果。
为我工作:
#include <time.h>
int main()
{
time_t seed = time(NULL);
return 0;
}
// gcc x.c && ./a.out
// echo $?
// > 0