問題タブ [void-pointers]
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++ での void* からオブジェクト配列へのキャスト
これを機能させるのに問題があります。
そして、必要なものにジェネリック型を使用できません。
前もって感謝します。
c++ - 「typedefvoid(* Something)()」とはどういう意味ですか
私はこれが何を意味するのかを理解しようとしています、私が見ているコードは
の.h
の.C
そして時々私がするとき
セグメンテーションエラーが発生します。メモリが解放されたことが原因である可能性があります。解放されたときにデバッグするにはどうすればよいですか?
c - Cのvoid*ポインタで算術演算を実行できますか?
これは有効ですか
もしそうなら、pは今何を指しているのですか?私はこれを行う(そしてきれいにコンパイルする)(サードパーティの)コードを持っています、そして私の推測では、void*はchar*として扱われました。私の信頼できるK&Rは、このトピックについて沈黙しています。
編集:私の小さなテストアプリはgcc 4.1.1で正常に動作し、void*をchar*として扱います。しかし、g++バーフ
私はそれを正しく行う方法を知っています。このコードベースをクリーンアップして、すべての場所を見つける必要があるかどうかを知る必要があります。
ところで、gcc-pedanticは警告をスローします
概要:
C仕様はあいまいです。表現と関数パラメータとしての使用に関しては、void * =char*と書かれています。しかし、ポインタ演算に関しては沈黙しています。
- gcc(4)はそれを許可し、charとして扱います*
- g++はそれを拒否します
- gcc-pedanticはそれについて警告します
- vs2010cとc++の両方がそれを拒否します
c++ - C->C++ タイプが指定されていない場合、#define で C++ のタイプ ポインタに void ポインタを自動的にキャストする (C スタイル) [MSVS]
やあ!
次のCマクロを使用しましたが、C++ では自動的に にキャストできませvoid*
んtype*
。
私は知っています、私はこのようなことができます:
しかし、使用されたコードの大部分を書き直したくありませんMALLOC_SAFE
。
マクロに型を与えずにこれを行う方法はありますか? 多分いくつかのMSVC 2005 #pragma
/ __declspec
/other ?
ps: 私のコードは大規模なプロジェクトの一部 (数百のモジュールの 1 つ) であるため、C コンパイラを使用できません。そして今は C++ です。コードを個別にビルドできることはわかっています。しかし、それは古いコードなので、すぐに移植したいだけです。
問題は void* キャストに関するものです;) それが不可能な場合は、MACRO_SAFE を MACRO_SAFE_CPP に置き換えます。
ありがとう!
c++ - "void*"からのdynamic_cast
これによると、void*
はRTTI情報を持っていないため、からのキャストvoid*
は合法ではなく、意味があります。
私が正しく覚えていれば、dynamic_cast
fromvoid*
はgccに取り組んでいました。
問題を明確にしていただけませんか。
c++ - パラメータタイプvoid*&はどういう意味で、その用途は何ですか?
C ++で記述されたAPIを調べていますが、次のパラメータータイプの意味について混乱しています。
void*& data
これは、ユーザーがvoidポインターへの参照を渡すことを意味しますか?それが本当なら、ポイントは何ですか?つまり、void *はすでに間接化されているのに、なぜもう一度リダイレクトしたいのでしょうか。
c - C-リンクリストとポインタの問題
ねえ、
私はCの初心者で、基本的に次のような独自のリンクリスト実装を実装しようとしました。
つまり、任意の型を保持できるリンクリストが必要です。これはCでvoidポインタを使用することで可能になると聞きました。たとえば、値として構造体を使用してその実装を使用する場合、問題が発生します。
最後のprintf呼び出しは、メモリアドレスのように見える-1077927056のような値を出力するだけです。したがって、おそらくポインタの問題です。過去数日間、Webで同様の問題を検索した後(運が悪かった)、自分のロジックを捨てて、さまざまなランダムな*&の組み合わせをテストしました。結局、それも行き止まりでした。:(
経験豊富なCプログラマーにとってはおそらく簡単なことですが、答えが見つかりません。助けてください:D
ios - コア オーディオ AudioBuffer のフレーム数を決定する
iPhone/iPad でオーディオ ファイルの生データにアクセスしようとしています。必要なパスを下る基本的な開始である次のコードがあります。ただし、AudioBuffer を取得したらどうすればよいか困惑しています。
基本的に、各バッファーに含まれるフレーム数を知る方法がわからないため、それらからデータを確実に抽出することはできません。私は未加工のオーディオ データを扱うのは初めてなので、AudioBuffer 構造体の mData プロパティを最適に読み取る方法についての提案をお待ちしています。また、過去に void ポインターをあまり使用したことがないので、このコンテキストでのヘルプも素晴らしいでしょう!
c++ - void ポインターとは何ですか? null ポインターとは何ですか?
そのため、いくつかのインタビューの質問を行っていたところ、 void および null ポインターに関する質問に出くわしました。
戻り値の型を持たないポインターは null ポインターと呼ばれます。任意の種類のデータ型にすることができます。
これは私を完全に混乱させました!この質問によれば、void と null は同じ意味で使用できるようですが、それが正しいとは思いません。void を戻り値の型、null を値と仮定しました。しかし、私はコードの新人にすぎず、自分が正しいかどうか確信が持てません。
nullポインタとvoidポインタとは何かについて、あなたの見解を述べてください。null と void の違いを探しているわけではありません。
c - Cの空でないvoid*ポインタに値を割り当てる正しい方法は何ですか?
私は次のコードを持っています:
問題は、このコードが次の警告をスローしていることです。警告:割り当てのターゲットは実際には左辺値ではありません。これは将来的には難しいエラーになります
キャストがないと、voidポインタを逆参照しようとしているという別の警告が表示されます...
警告はエラーとして扱われているため、このコードを使用することはできません-しかし、引数としてvoid*以外のポインタータイプを実際に使用することはできません。私が見逃しているエレガントな解決策はありますか?
これを機能させる方法はありますか?