美文网首页
C++在__strlen_avx2 ()处遇到段错误

C++在__strlen_avx2 ()处遇到段错误

作者: Glitter试做一号机 | 来源:发表于2019-06-12 15:20 被阅读0次

学弟跑B+树的测试遇到一个奇怪的段错误,出现在一个访问char**数组的时候,这个数组存储B+Tree的key,空间确实是已经初始化了,也确实打印了不是空指针,但是一访问就出错


访问key key数组确实是初始化过了

用gdb跑了一下,发现出错在__strlen_avx2 ()这个地方


__strlen_avx2 ()错误

然后搜这个问题发现一个出现这个问题的原因,其中一条就是使用了没有'\n'结束的字符串


segmentfault上的解答

然后看函数定义,发现InsertIndex函数接收参数是string类型,而传入的是char类型,这里就会要求做一个强制的类型转换,但是问题在于这个char没有\n结尾,有没有传入char*的长度,所以就会出现这个问题。

所以char*和string混用的时候害得注意一下,以及再次怀念一下rust的类型检查

相关文章

网友评论

      本文标题:C++在__strlen_avx2 ()处遇到段错误

      本文链接:https://www.haomeiwen.com/subject/ttslfctx.html