問題タブ [uthash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - UTHash マルチレベル ハッシュ テーブルが HASH_FIND_STR でクラッシュする
私は次のような2つの構造を持っています:
私のコードでは、私はこのようなことをします
これにより、HASH_FIND_STR() でセグ フォールトが発生するようです。私が間違っていることはありますか?この例では、my_item1 と my_item2 は別の場所から取得され、有効であると想定しています。値を見つけるためのキーとして stringkey を使用したいと思います。
条件の部分にブレークポイントを置いたIF
ので、最初は見つからないことがわかり、そのキーの2番目の検索でelse
ブロックが入力されます。
興味深いことに、HASH_ITER を使用してエントリを反復処理すると、少なくともクラッシュすることなく「機能する」ように見えますが、すべての値が同じであるとは確信していません。
c - 関数呼び出しの UTHash は反復を 1 回実行しますが、2 回目は実行しません
ローカル変数での uthash の使用に問題があります。
私のコードは次のようになります。query_dict はローカル変数 uthash です。
より密接に:
print_query_struct への呼び出しは正常に実行されますが、トークンのプリフェッチへの呼び出しは 1 回の反復を実行してから、次のようにクラッシュします。
アドレス、0x0000001000000000 は常に同じです。
私はあらゆる種類のさまざまなことを試してきましたが、うまくいきませんでした。ここで何が起こっているか知っている人はいますか?
構造体:
編集: コードをかなり単純化し、実行可能な例を小さくしましたが、本質的に、これは失敗するコードです: http://pastebin.com/qdDiQMG0 コンパイルしてから ./binary で実行します
例えば。./バイナリ「ウォッシュヘルプ」
編集2:なぜそれが機能したのかよくわかりませんが、解決しました:init_alloc_queryを次から書き直しました:
次のように動作します。
そして、すべてがうまくいきます。
c - 互換性のないポインター型からの割り当てに関する問題
ファイルを読み込んで、ハッシュに保存してからコピーしようとしています。ただし、互換性のないポインター型を取得します
}
初期化const char **n, *names = {array elements here};
するとコードは機能しますが、私が持っているコードでは機能しません。助けてください。