私が見るものはすべて、乱数を使用して適切なパラメーターシードを取得する方法を示しています。
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
非ゼロに再定義したということです。null 以外のポインタを渡すと、そのメモリに書き込もうとするため、segfault が発生する可能性があります。
クイックチェックはtime(0)
代わりに試すことです。
失敗すると、他の場所での破損が原因である可能性があります。その場合の最善の策は、デバッガーを使用してシングルステップで実行することです。
また、正しいヘッダーが含まれていることを確認してください。整数 (以前の標準に従うコンパイラのパラメータのデフォルト) がポインタとは異なるサイズであるシステムでは、スタックのミスアライメントが発生する可能性があります。いくつかの 64 ビット システムでこの種の効果を見たことがあります。
私のために働く:
#include <time.h>
int main()
{
time_t seed = time(NULL);
return 0;
}
// gcc x.c && ./a.out
// echo $?
// > 0