V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
yhf
V2EX  ›  C

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

  •  
  •   yhf · Jan 18, 2015 · 2190 views
    This topic created in 4125 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    看到没有,node的值是零,你非要给它赋值
    diablocy
        3
    diablocy  
       Jan 18, 2015
    恩,ls说的也是问题, 没有new node
    msg7086
        4
    msg7086  
       Jan 18, 2015
    我做leetcode的LRU Cache是用的unordered_map+list来做的。
    一般没必要的话最好用STL而不是自己造轮子。
    vietor
        5
    vietor  
       Jan 18, 2015 via Android
    临界区?
    noli
        7
    noli  
       Jan 18, 2015
    gdb lldb 什么的……不是跟踪一下就有了吗?
    yhf
        8
    yhf  
    OP
       Jan 18, 2015
    @bombless 非常感谢!
    yhf
        9
    yhf  
    OP
       Jan 18, 2015
    @clowwindy 非常感谢!
    yhf
        10
    yhf  
    OP
       Jan 18, 2015
    @clowwindy 最后这行 (Node<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > *) $0 = 0x0000000000000000 是什么意思?
    msg7086
        11
    msg7086  
       Jan 18, 2015
    @yhf Node<int, string>*指针指向了null。
    yuankui
        12
    yuankui  
       Jan 19, 2015
    看成了 [实在是搞不明白为什么会出现 segmentfault.com] 。。
    羞愧。
    chenwl
        13
    chenwl  
       Jan 19, 2015
    @yuankui 我也差点看错了~
    acgeo
        14
    acgeo  
       Jan 19, 2015
    多半数组越界
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   985 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 23:17 · PVG 07:17 · LAX 16:17 · JFK 19:17
    ♥ Do have faith in what you're doing.