mxGetPr
またはmxRealloc
によって返されたポインタが与えられても、引き続きその長さを取得できますか? MATLABはポインタのメモリを管理するので、クエリ用のメタデータを格納していますか?mxReallocまたはmxMallocから返されるポインタの長さを知ることはできますか?
答えて
あなたの質問は少し不明瞭なので、私は2つの機能を説明してみましょう:
mxGetPr
は、正確には(そのデータへのポインタをポインタを取得するために、既存のmxArray
数値配列で呼び出されますdouble
実データ)。このデータの長さを知りたい場合は、mxGetNumberOfElements
を使用して元の配列自体を照会することができます。mxRealloc
と関連する関数は、Cで利用可能な標準のmalloc
ファミリーファミリーに似ています。したがって、あなたがそれらを使用しているなら、あなたはメモリを割り当てているので、あなたはどのサイズですか?
mxRealloc
の目的は、MATLABがメモリをある程度自動的に管理できるようにすることです。 MEX関数が返ってくると、MATLABはmxMalloc
などで割り当てられた登録されたヒープメモリを解放します。
ここで良いコードを書くということは、あなた自身のメモリを解放すべきであることを意味します(この自動メモリ管理に頼ると処理が遅くなる可能性があります)が、特定のケースでは便利です終了時にリソースが解放されることを保証するために醜いgotoステートメントに依存する必要があります)。
内部について興味があれば、ほとんどのメモリアロケータはヒープ割り当て配列の長さを配列自体の直前に格納すると思います( 'ptr [-1]'のヘッダのように)。また、一部の実装のデバッグバージョンでは、バッファオーバーフローをキャッチするためのバインドチェックのために、ヘッダー/フッタースペースに余分なものを格納することがあります。 – Amro
- 1. コンソールアプリケーションはバッチファイルから呼び出されたことを知ることができますか?
- 2. バッチスクリプトは、PowerShellから呼び出されたかどうかを知ることができますか?
- 3. C++でCライブラリから返されたポインタを使用する
- 4. 修飾された修飾されたポインタを関数に渡すことはできますか?
- 5. 長さを知らずにポインタを解放する
- 6. それはフォームが表示()またはShowModalで示されているかを知ることができる()
- 7. テーブルが変更データキャプチャ(CDC)から削除された、または追加されたことを知る方法?
- 8. IOS - UISaveVideoAtPathToSavedPhotosAlbumが保存されたビデオパスを返すことはできますか?
- 9. TStringList.Sortはソートされたインデックスを返すことができますか?
- 10. Firebirdのテーブル名の長さを拡張することはできますか?
- 11. アップロードされたファイルの種類がイメージかどうかを知ることはできますか?
- 12. アプリケーションでメソッドが呼び出されたかどうかを知ることはできますか?
- 13. 特定のファイルタイプが変更されたときにGerritに通知することはできますか?
- 14. Linuxプログラムは、どのように起動されたかを知ることができます:コマンドラインから?またはcronか他の何かによって?
- 15. 現在のメソッドは、どのメソッドが呼び出されたかを知ることができますか?
- 16. なぜcant const参照はポインタと同じ方法で返されますか?私たちは関数からポインタを返す場合
- 17. このポインタ割り当てはどのアドレスに返されますか?
- 18. get_posts()またはWP_Queryに投稿コンテンツが返されないようにすることはできますか?
- 19. JNIでは、AttachCurrentThread()から返されたJNIEnvポインタのクリーンアップ関数はありますか?
- 20. iOS voip app sleep&Reachabilityが変更されました。通知を受け取ることはできますか?
- 21. シリアルポートがLinuxで接続/切断されているかどうかを知ることはできますか?
- 22. ここで奇妙に繰り返されるテンプレートパターンを使用することはできますか(C++)?
- 23. String#splitから長さゼロの文字列が返される
- 24. 特定の長さの配列から構造体を作ることはできますか?
- 25. C:関数から返された後、mallocされたポインタが場所を変更しますか?
- 26. PDO:fetchColumnは返された結果セットのポインタを移動しますか?
- 27. ポインタをデータ構造にすることはできますか?
- 28. iframeのページは、iframeされているときに通知できますか?
- 29. 関数がNULLへのポインタを返すことはできますか?
- 30. これらのネストされたJavaScriptのif文を簡略化することはできますか?
['mxGetNumberOfElements'](http://www.mathworks.com/help/matlab/apiref/mxgetnumberofelements.html)または[' mxGetDimensions'](http://www.mathworks.com/help)を使用できますか? /matlab/apiref/mxgetnumberofelements.html)? – Suever
ポインタの長さは 'sizeof(pointer_name)'の型と同じです。それともそれが指しているオブジェクトを意味していますか? – Olaf
私は彼が割り当てられたバイト数を意味すると思います。 – FredK