lzysyy 2022-11-01 20:17 采纳率: 80%
浏览 24
已结题

调用哈希函数,编译后出现了段错误

数据集只成功插入了一个包,第二个包就发生了段错误。
调用哈希函数,编译后出现了段错误,在Ubuntu下进行gdb的调试,找到了段错误的位置,均是使用或者调用了哈希的文件位置,如下图所示

Program received signal SIGSEGV, Segmentation fault.
0x0000555555556600 in BOBHash32::run (this=0x0, str=0x7ffff12a901d "\222\234\006f~\325\343\334.\335P", len=4) at ../AGCSketch/../common/BOBHash32.h:209
209             c = prime32[this->prime32Num];         /* the previous hash value */
(gdb) bt
#0  0x0000555555556600 in BOBHash32::run (this=0x0, str=0x7ffff12a901d "\222\234\006f~\325\343\334.\335P", len=4) at ../AGCSketch/../common/BOBHash32.h:209
#1  0x00005555555580e5 in Guide_Candidate_Part<460800>::insert (this=0x555555599598, key=0x7ffff12a901d "\222\234\006f~\325\343\334.\335P", f=1) at ../AGCSketch/Guide_Candidate_Part.h:59
#2  0x000055555555773a in AGCSketch<19200, 614400>::insert (this=0x555555573d90, key=0x7ffff12a901d "\222\234\006f~\325\343\334.\335P", f=1) at ../AGCSketch/AGCSketch.h:38
#3  0x0000555555556c81 in main () at AGCSketch.cpp:63
(gdb)

错误其实是连带的,均是由#0 引起的,但是想不到是什么原因导致BOBHash出错了。
考虑其中是否有变量类型不一致?已经修改进行了统一。考虑是否由于指针数组引起的?进行了非法的内存访问?也进行了new的分配内存和释放内存。
想不到还有什么原因导致哈希函数这块错误?希望有人可以帮忙解答一下~

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月9日
    • 创建了问题 11月1日

    悬赏问题

    • ¥15 无法输出helloworld
    • ¥15 高通uboot 打印ubi init err 22
    • ¥20 PDF元数据中的XMP媒体管理属性
    • ¥15 R语言中lasso回归报错
    • ¥15 网站突然不能访问了,上午还好好的
    • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
    • ¥15 semrush,SEO,内嵌网站,api
    • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
    • ¥15 振荡电路,ADS仿真
    • ¥15 关于#c语言#的问题,请各位专家解答!