問題タブ [memory-access]
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 - C のトライ ツリーでのセグメンテーション違反と Valgrind スタックされていないアドレス エラー
これらの構造体を使用して、C でトライ ツリーを作成しています。
しかし、私はこの挿入機能に問題があります:
この関数は、ツリーへのポインターと文字列を受け取ります。Trie のルートが NULL の場合、ノードを作成し、その後、格納する空き (NULL) 位置の次の配列を検索します。
問題は次の行にあります。
これを実行するとセグメンテーション違反エラーが発生し、GDB で次のエラーが発生します。
そして、この方法で Valgrind を使用します: valgrind --tool=memcheck --leak-check=full --track-origins=yes ./trie これらのエラーが表示されます
どんな助けでも本当に感謝しています。ありがとう!
====編集==== クラッシュ時の値:
===Edit2=== 要求されるその他の値:
access-violation - メモリアクセス違反 VC++
把握できないメモリ アクセス違反が発生しています。私の構文がどこか間違っている可能性があると推測しています。これが私のコードです
アクセス違反の原因は何ですか?
c++ - CPUによるアドレスエイリアシングで使用されるビット数を見つける方法は?
私はこの質問とトップ投票の回答を参照しています:-
結合ループよりも個別のループの方が要素ごとの加算がはるかに高速なのはなぜですか?
私の質問は、特定の CPU がロード/ストアのアドレス エイリアシングに使用するビット数 (N と呼びます) を決定する簡単な方法はありますか?
object - オブジェクトと構造体のメンバーアクセスとアドレスオフセットの計算
単純なVMを作成していますが、オブジェクトと構造体のメンバーアクセスの実装について質問があります。
プログラムの開始アドレスは実行ごとに任意であり、その後、そのオブジェクトのすべてのアドレスも任意であるためです。
したがって、オブジェクトまたはそのメンバーオブジェクトにアクセスするために私が考えることができる唯一の方法は、「ベース」ポインタからのオフセットにアクセスすることです。つまり、プログラム構造内のすべてにアクセスするために必要な算術演算があります。
私の質問は、これがプロのコンパイラで行われる方法であるかどうかです。これは、明らかにこのアプローチによってランタイムにオーバーヘッドが追加されるためです。私自身、このプロセスをランタイムからオフロードする方法は考えられません。メモリ割り当てとそのアドレスの一貫性?
c - Cの「生の」メモリからタイプ値を読み書きする方法は?
このような作品を作るにはどうすればよいですか?
mpi - MPI_Isend /Irecv: その間、未使用のメモリ位置の sendbuffer にアクセスできますか?
非同期通信を使用して MPI プログラムを高速化したいと考えています。しかし、使用時間は同じままです。ワークフローは次のとおりです。
測定では、一般的なワークロードの場合、アレイ コアの通信と処理にほぼ同じ時間がかかることが示されました。したがって、非同期性は通信時間をほとんど隠しているはずです。しかし、そうではありません。
1 つの事実 (これが問題になる可能性があると思います) は、sendbuffer が計算が行われる配列でもあるということです。通信は Halo (派生データ型を使用) のみにアクセスし、計算は配列のコア (読み取りのみ) にのみアクセスしますが、MPI がメモリアクセスをシリアル化することは可能ですか?
これが確かな理由かどうかは誰にもわかりませんか?
おそらく実装依存ですか(私はOpenMPIを使用しています)?
前もって感謝します。
c - リンクリストまたはシーケンシャルメモリ?
これをどう説明すればいいのか100%わかりませんが、頑張ります。私は現在、構造体のセット(objsと呼ばれる)へのポインターを含む構造体(setと呼ばれる)があるプロジェクトに取り組んでいます。これらの構造体のセットにアクセスするには、onはそれらのメモリアドレス(配列など)を反復処理する必要があります。メイン構造体には、そのセット内の構造体の数が含まれています。これが私のやり方です
私の質問は、リンクリストはより安全で、より速く、または何らかの方法でより良いでしょうか?代わりに構造体の配列はどうですか?
ありがとう。
c - 2つのスレッドが同じメモリのCONSTブロックを同時に読み取ることができますか
メモリのブロックは、プログラムの開始時に初期化および設定され、変更されませんでした(CONST)。例えば:
static const int a = 10;
環境/アーキテクチャに依存している場合、これらの設定は安全ですか?
- Intel / AMD
- Win /Linux32/64ビット
- コアごとのスレッドまたは1つのコアのすべてのスレッド。
c - このメモリアクセスエラーが「ダブルフリーまたは破損」になるのはなぜですか?
次のようなエラーが発生します。私はそれが私が不適切にメモリにアクセスすることと関係があることを知っていますが、私は正確にはその方法を知りません。私がどこで間違っているのかを知るのを手伝ってください。
*関数を簡略化したので、変数が何をしているのかが明確ではないことに注意してください。関数を誤って実装している方法や、メモリアクセスを誤用している場所を知る必要があります。
私が与えられたエラー:
c# - オブジェクト変数のバイト (現在 RAM にある) を読み取り、C# のバイトでオブジェクトを再作成するにはどうすればよいですか?
たとえば、C#のオーキーでオブジェクトのバイトにアクセスしたい:
WCF でクラスをシリアル化すると、シリアライザーはクラス オブジェクトのすべてのバイトを読み取り、最後に SOAP メッセージを読み取ります。
オブジェクトのバイトを読み取り、そのバイトでオブジェクトを再作成する方法を知っている