C: initstate_r 崩溃

标签 c random crash segmentation-fault

我在尝试使用 initstate_r 时遇到崩溃:

(gdb) run
Starting program: /home/user/test.out

Program received signal SIGSEGV, Segmentation fault.
0x40052d00 in initstate_r () from /lib/libc.so.6

代码:

#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define STATELEN    256             /* random number state buffer */

main()
{
 char randomStateBuffer[STATELEN];
 struct random_data randData;

 printf("Before initstate");
   /* seed the random number generator */
    initstate_r (time(NULL), (char *)&randomStateBuffer, STATELEN,
   (struct random_data *)&randData);
 printf("initstate done");

}

我已经尝试在 gcc 3.3.6 和 4.3.3 中编译它,但都发生了崩溃。

最佳答案

在调用 initstate_r() 之前尝试将 randData 结构清零。
memset( &randData, 0, sizeof( random_data ) );
(从这个页面得到提示:http://sourceware.org/bugzilla/show_bug.cgi?id=3662)

关于C: initstate_r 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4167034/

相关文章:

javascript - 受约束的随机数总是用 javascript/jquery 总计约束

Emacs-每小时都有随机的颜色主题?

python - IDLE 3.4.3 运行模块时崩溃

c - curl_multi_fdset() 中的 exc_fd_set 是什么?

c - argv[n] 是可写的吗?

c - 如何从图像中计算管道数量?

algorithm - 结合 PRNG 和 'true' 随机,快速和(也许)愚蠢的方式

启用/禁用 wifi 时 Android 应用程序崩溃

asp.net - iFrame 中的大表格会导致 IE8 崩溃

C编程帮助(计算机猜测用户正在思考的数字)