問題タブ [invalid-pointer]
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.
delphi - FSQL (TStringList) を解放しようとすると Delphi XE3 の無効なポインタが発生する
XE3 で新しいアプリを作成していますが、D2007 で作成されたいくつかのユニットを使用しています。
TStringList データ項目を解放するときにエラーが発生します。データ項目 FSQL を作成するコードは次のとおりです。
エラーが発生しているコードは次のとおりです。
エラーは「FreeAndNil(FSQL);」で発生します。「FSQL.Free」を試してみましたが、同じ結果が得られました。
これが私が得ているエラーです:
プロジェクト: PayorUpdate.exe で例外クラス EInvalidPointer が発生し、「無効なポインター操作です。
青い矢印 (デバッグ モード) を壊すと、_FreeMem(Pointer(Self)); を指しています。System ユニットのプロシージャ TObject.FreeInstance では、次のようになります。
TStringList データ項目を解放しないと、アプリでメモリ リークが発生します。
設定する必要がある構成オプションはありますか? 私はグーグルで検索しましたが、3つの可能性の1つ以外に、私が間違っていることを説明するものは何も見つかりませんでした:
- 他のメモリ マネージャによって割り当てられました。
- 以前に一度解放されていました。
- それは何によっても割り当てられたことはありませんでした。
試してみると...ただし...問題を回避することはできますが、これは避けたいと思います。
ところで、別のユニットに別の TStringList があり、FreeAndNil を作成しましたが、エラーは発生しません。
ソース全体は次のとおりです。
.net - アプリケーションを実行しようとしたときの VS2015 エラー: 無効なポインター
Visual Studio 2015 ソリューションをデバッグすると、次のエラー メッセージが表示されます。
アプリケーションの実行中にエラーが発生しました: ポインタが無効です
明らかに、何かが適切に構成されていないか、権限に関連しています。誰かが原因を特定したかどうか疑問に思っていますか?
c - Cで無効なポインタの値をフェッチすることは未定義または実装定義の動作ですか?
thisによると、無効なポインターの値を取得することは、C++ の実装定義の動作です。ここで、次の C プログラムを考えてみましょう。
しかし、Cでも動作は同じですか?上記の C プログラムの動作は未定義ですか、それとも実装定義ですか? C99/C11 標準はこれについて何と言っていますか? C99 と C11 で動作が異なる場合は教えてください。
c++ - munmap_chunk(): ベクトルのマップをクリアするときの無効なポインター
このSPOJ 問題の解決策を C++11 で実装しました。使用すると完全にコンパイルされますclang
。SPOJ のg++
送信では、メッセージとともに実行時エラーをスローする使用が使用されますinvalid pointer
。私はそれを次の行に絞り込みました:
studentNumberToRequestedBedroomsMap.clear();
他の回答から、解放されるポインターが によって取得されたものではない場合にこのエラーが発生することを理解しましたmalloc
が、私はまだ C++ に慣れていないため、その情報を使用してこの問題を解決する方法がわかりません。この問題の解決にご協力いただければ幸いです。
c++ - テンプレート化されたデキューの無効なポインター: クラスの削除に失敗する
テンプレート化されたキューのデキュー関数は、文字列のキューに対しては正常に機能しますが、カスタム ロボット クラスを使用すると、ポインターを削除しようとするとクラッシュします。その理由が気になります。
たとえば、main.cpp では
文字列キューは正常に機能しますが、次のエラーが発生します。
私のテンプレート化されたキューはこのようなものです (これがもっと必要かどうかはわかりません)。
robotqueue.hpp
RobotCustomer がクラスであるため、 m_data がそれを指すことができないなどと関係があると思いますか? ここでは専門家ではありません:p
RobotCustomer.h
御時間ありがとうございます :)
---------------------UPDATED_WITH コンストラクター/デコンストラクター-------------------
RobotCustomer.cpp
c++ - c++ free(): パス圧縮中の無効なポインタ エラー (ランクによる結合)
他の同様の質問を調べましたが、このエラーの理由がわかりませんでした。パス圧縮によるランクによるユニオンを使用して、クラスカルの最小スパニング ツリー アルゴリズムを実装する C++ プログラムを作成しています。MST のエッジを正しく出力しますが、パス圧縮部分を含めると、次のエラーが発生します。
* `./kruskal' のエラー: free(): 無効なポインタ: 0x0000000001650d00 *
gdb のバックトレースを見ると、ベクター/クラス デストラクタに問題があるようです。
ループ中にパス圧縮を含めると何が壊れるのか誰か説明してもらえますか?
編集: エラーが発生するサンプル入力:
c++ - glibc free() のデバッグ: 無効なポインター
最終的にスローされるコードをデバッグしようとしています
無料を使用していないため、難しいです...問題を再現する例がある他のSOの投稿を見てきました..デバッグ方法について助けが必要です. まず、私は C/C++ n00b なので、ポインター スキルは開発中ですが、動的メモリ割り当てはあまり行っていません (と思います)。
カメラからスナップショットを取得して NFS 共有に書き込む独自の「セキュリティ」アプリケーションの作成を開始しています。最終的には、各カメラのスナップショットを表示する予定です。現在、1 台のカメラからキャプチャを取得し、表示ウィンドウを循環させます (opencv を使用)。コア ダンプを取得する前に、しばらく (~1 時間) 実行できます。ウィンドウを実行するスレッドを作成します。実行フラグが false に設定されるまでループしてから、cvReleaseImage を呼び出します。これが失敗する理由がわかりません。ガイダンスをいただければ幸いです。
shared-libraries - dlopen がライブラリのロードに失敗しました。ポインタが無効です
ライブラリ「libqscr.so」があり、実行時に dlopen を使用してプログラムにロードします。PCを再起動した後、dlopenで次のエラーが発生し始めました。
ライブラリを再コンパイルしようとしましたが、問題は残ります。パスが正しい場合にのみ発生することに気付きました。それ以外の場合は null が返されます。ところで、私はこれをすべてUbuntu 14.04で実行しています。
編集:この問題はその特定のライブラリでのみ発生し、他のライブラリは正常にロードされることに気付きました。
EDIT2:だから私は問題をライブラリに追跡し、それを引き起こしている機能さえも追跡しました。setLength 関数を削除すると、すべてが正常に機能し始めることに気付きました。
なぜこれが起こっているのですか?
さらに別のEDIT(3):trunc関数呼び出しを削除しましたが、現在はすべて機能しています。なぜそれが起こっているのかを説明する答えがあれば、私は受け入れます。