V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yhf
V2EX  ›  C

实在是搞不明白为什么会出现 segmentation fault

  •  
  •   yhf · 2015-01-18 16:51:32 +08:00 · 1686 次点击
    这是一个创建于 3631 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为的是实现一个 LRU Cache. 用 hashmap 和双向链表实现,有两个接口:

    T get(K key);
    void put(K key, T data);
    

    可是运行出现 segmentation fault,不知道是什么原因...

    https://gist.github.com/yhfyhf/c11544185c1172650614

    14 条回复    2015-01-19 21:40:50 +08:00
    diablocy
        1
    diablocy  
       2015-01-18 17:08:50 +08:00
    无条件执行 count++
    bombless
        2
    bombless  
       2015-01-18 17:16:22 +08:00
    void put(...) {
    if (node) {
    ...
    }
    else {
    ...
    node->key = key;
    ...

    看到没有,node的值是零,你非要给它赋值
    diablocy
        3
    diablocy  
       2015-01-18 17:19:12 +08:00
    恩,ls说的也是问题, 没有new node
    msg7086
        4
    msg7086  
       2015-01-18 17:20:20 +08:00
    我做leetcode的LRU Cache是用的unordered_map+list来做的。
    一般没必要的话最好用STL而不是自己造轮子。
    vietor
        5
    vietor  
       2015-01-18 17:25:36 +08:00 via Android
    临界区?
    clowwindy
        6
    clowwindy  
       2015-01-18 19:32:38 +08:00   ❤️ 1
    noli
        7
    noli  
       2015-01-18 20:07:54 +08:00
    gdb lldb 什么的……不是跟踪一下就有了吗?
    yhf
        8
    yhf  
    OP
       2015-01-18 21:04:25 +08:00
    @bombless 非常感谢!
    yhf
        9
    yhf  
    OP
       2015-01-18 21:05:51 +08:00
    @clowwindy 非常感谢!
    yhf
        10
    yhf  
    OP
       2015-01-18 22:12:32 +08:00
    @clowwindy 最后这行 (Node<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > *) $0 = 0x0000000000000000 是什么意思?
    msg7086
        11
    msg7086  
       2015-01-18 22:16:38 +08:00
    @yhf Node<int, string>*指针指向了null。
    yuankui
        12
    yuankui  
       2015-01-19 09:48:09 +08:00
    看成了 [实在是搞不明白为什么会出现 segmentfault.com] 。。
    羞愧。
    chenwl
        13
    chenwl  
       2015-01-19 11:30:25 +08:00
    @yuankui 我也差点看错了~
    acgeo
        14
    acgeo  
       2015-01-19 21:40:50 +08:00
    多半数组越界
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2806 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:23 · PVG 11:23 · LAX 19:23 · JFK 22:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.