問題タブ [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++ - トークンを列挙するときに SAPI ベースのアプリケーションがメモリ アクセス違反をスローする
Microsoft SAPI TTS を使用してアプリケーションを開発できるように、最近 Visual Studio 2015 (Community) をダウンロードしました。5.1 SDK をインストールしてから 5.4 SDK for Speech をインストールし、Runtime Languages for SAPI をインストールしました。
これまでのところ、直接の引数と SSML .XML ファイルの読み取りの両方で SAPI に話させたいフレーズを使用することで、なんとかアプリを機能させることができました。音声トークンの変更に関するものを除いて、SAPI と SSML のすべての機能が機能します。(例: <voice xml:lang="pl-PL">
... <voice required="Gender:Female">
...など)
言語/音声トークンの設定方法に関するいくつかのフォーラムを読み、次のコードを試しました。
プログラムはエラーなしでビルドされますが、最後の return ステートメントでエラー 0xC0000005 (メモリ アクセス違反) がスローされます。
<sphelper.h>
非推奨のメソッド ::GetVersionExW() のため、ヘッダーファイルを変更する必要がありました。 Windows-s-deprecation-of-GetVe . 奇跡的に (そして、システムのソース コードを少し調整しただけで、おそらく悪い考えでした)、それは機能しました。
問題はレジストリトークンにアクセスするプログラムにあるに違いないため、プログラムが最後にスローする理由はわかりません。通常、問題はポインターにあることはわかっていますが、これを機能させるために何をする必要がありますか?
cpVoice
オブジェクトにポーランドのトークン「Paulina」を使用させようとしていることに注意してください。オブジェクトにレジストリ トークン値を手動で割り当てる方法はありますか?
c - C - 1 つのポインタへの複数回の再帰的書き込み後のメモリ アクセス エラー
私が一時的に FIF ループ (関数ループ) と呼んだループのアイデアにたどり着いたとき、私は多くの異なる形式のループをいじっていました。
正確に174665回の繰り返しを行うまで、かなりうまく機能します(通常のループよりも10倍遅いですが、今のところnvmです)。174665回目の繰り返しでCannot access memory at address
、行の *k ポインターにスローされます:
void fif(bool (*f)(int *x),int i,int *k){
。常に同じポイントでクラッシュします (同じ繰り返し)。理由はありますか?Ubuntu 15.10、gcc バージョン 5.2.1 20151010 でテストしています。助けてくれてありがとう
私のコード:
performance - メインメモリへの複数アクセスとアウトオブオーダー実行
キャッシュされていない無関係なアドレスを指している 2 つのポインターがあると仮定してみましょう。したがって、逆参照されるときは両方ともメイン メモリから取得する必要があります。
アウトオブオーダー実行により、 の値が計算される前にコードを実行できる場合、最新の Intel プロセッサでは値の取得と処理c
はどのように行われるのでしょうか?a
b
潜在的にパイプライン化されたメモリ アクセスは完全にシリアル化されていますか、それとも CPU のメモリ コントローラによって何らかのフェッチ オーバーラップが実行されている可能性がありますか?
つまり、メイン メモリにアクセスするのに 300 サイクルかかると仮定すると、フェッチa
とb
コストは 600 サイクルになりますか、それともアウトオブオーダーの実行によりオーバーラップが可能になり、サイクルのコストが削減される可能性がありますか?
go - Golang でランダムなメモリ位置を読み取る
こんばんは、
私はメモリ内の値をスキャンする golang アプリケーションを構築しようとしていますが、特定のメモリ位置に対処する方法を理解しようとして苦労しています。アプリケーション内のメモリにアクセスするときに、アドレスの場所を参照して取得するために使用できることはわかっていますが*variablename
、アドレスの場所を提供して値を画面に出力したり、次に割り当てられた任意のサイズのオブジェクトを RAM から取得してその値を出力したりするにはどうすればよいでしょうか。 ?
あなたが共有しても構わないと思っているかもしれない助けを前もって感謝します
c# - Solidworks、Isldworks.CloseDoc のメモリ アクセス違反エラーを追跡
C# で作業しているアドオン内に 2 つの異なる関数があります。最近 (どうやら) Solidworks は、これら 2 つの関数の特定の部分に到達するとクラッシュするようになりました (それ以上の可能性もありますが、これまでに発生したのはこれら 2 つだけです)。デバッグ中、両方の関数で「メモリ アクセス違反」が発生します。エラー"。このエラーは、アクティブなドキュメントを閉じている行で毎回発生し、約 95% の確率で発生します。
ほとんどの場合、同じ部分にあります。実行時間や、開閉されたパーツの数とは無関係のようです。ファイルを閉じないと、エラーが発生しないようです。しかし、大規模なアセンブリを実行すると、それ自体の問題が生じます。閉じる前に 1 秒の待機を追加すると、エラーの頻度が減少するようです (同様に、エラーなしでアセンブリ全体を通過できる場合もあります)。
私が主に関心を持っている機能が何をしているのかを簡単に説明します。アセンブリのトップ レベルから機能し、カスタム プロパティをメイン アセンブリとサブアセンブリからそれらの子に伝達します。そのため、さまざまなアセンブリ ファイルやパーツ ファイルを頻繁に開いたり閉じたりしています。
以下のコードは、エラーを再現する最小限のコードにまで簡略化されています。エラーは 59 行目で発生します。これまでにオンラインで見たものから、これらを突き止めるのは難しいようです。どんな助けでも大歓迎です。
更新:この質問を見た後。メモリ アクセス違反の原因は何ですか? 関数で使用するいくつかのグローバル変数をいじってみましたが、効果がありませんでした。ただし、この問題を回避していると思われる部分をループするために、重要なコードを別の論理構造にラップすることができました。しかし、それはせいぜいバンドエイドだと感じており、将来この問題を回避できるようにしたいと考えています.