タグ付けされた質問 「c++」

C ++は汎用プログラミング言語です。もともとCの拡張として設計され、構文は似ていますが、現在は完全に異なる言語になっています。このタグは、C ++コンパイラでコンパイルされる(される)コードに関する質問に使用します。特定の標準リビジョン[C ++ 11]、[C ++ 14]、[C ++ 17]または[C ++ 20]などに関連する質問には、バージョン固有のタグを使用します。

7
Visual Studio 2012のC ++ 11機能
Visual Studio 2012のプレビューバージョン(VS2010以降の次のバージョン)が利用可能になりました。 それがサポートする新しいC ++ 11機能を誰かが知っていますか?(私は現時点でそれを試すことができません)。

2
JPEG of Deathの脆弱性はどのように機能しますか?
私が取り組んでいるプロジェクトの死のJPEGと呼ばれる、Windows XPおよびWindows Server 2003の GDI +に対する古いエクスプロイトについて読んでいます。 エクスプロイトについては、次のリンクで詳しく説明されています。http: //www.infosecwriters.com/text_resources/pdf/JPEG.pdf 基本的に、JPEGファイルには、COMと呼ばれる(空の可能性がある)コメントフィールドを含むセクションと、COMのサイズを含む2バイトの値が含まれています。コメントがない場合、サイズは2です。リーダー(GDI +)はサイズを読み取り、2を引いて、適切なサイズのバッファーを割り当てて、ヒープにコメントをコピーします。攻撃で0は、フィールドに値を配置します。GDI +はを減算し2、その値はによって-2 (0xFFFe)符号なし整数に変換さ0XFFFFFFFEれmemcpyます。 サンプルコード: unsigned int size; size = len - 2; char *comment = (char *)malloc(size + 1); memcpy(comment, src, size); ことを観察するmalloc(0)3行目のヒープ上に割り当てられていないメモリへのポインタを返すべきです。どのようにして0XFFFFFFFEバイト(4GB!!!!)を書き込むとプログラムがクラッシュしないのでしょうか?これは、ヒープ領域を超えて、他のプログラムやOSの領域に書き込みますか?次に何が起こりますか? 私が理解しているようにmemcpy、それは単にn宛先からソースに文字をコピーします。この場合、ソースはスタックにあり、宛先はヒープにありnます4GB。
94 c++  security  memcpy  malware 

3
「インクルードディレクトリ」と「追加のインクルードディレクトリ」の違いは何ですか
プロジェクトの構成プロパティの「VC ++ディレクトリ」の下に、「ディレクトリを含める」のエントリがあります。しかし、「C / C ++」オプションの下に、「追加のインクルードディレクトリ」と呼ばれる別のエントリがあります。ライブラリディレクトリでも同じことが起こります。 これら2つのエントリの違いは何ですか?

12
マシンのIPアドレスを取得する
この質問は、前に尋ねたローカルコンピュータのIPアドレスの取得-質問とほぼ同じです。しかし、LinuxマシンのIPアドレスを見つける必要があります。 だから:どのように-私はC ++でプログラム的に- 私のアプリケーションが実行されているLinuxサーバーのIPアドレスを検出します。サーバーには少なくとも2つのIPアドレスがあり、特定のアドレス(特定のネットワーク内の1つ(パブリックアドレス))が必要です。 それを行う簡単な関数があると私は確信しています-しかし、どこに? 少しわかりやすくするには: サーバーには明らかに「localhost」があります:127.0.0.1 サーバーは内部(管理)IPアドレスを持っています:172.16.xx サーバーは外部(パブリック)IPアドレスを持っています:80.190.xx アプリケーションをバインドする外部IPアドレスを見つける必要があります。明らかに、INADDR_ANYにバインドすることもできます(実際、それが現在私が行っていることです)。しかし、私はパブリックアドレスを検出したいと思います。

4
論理演算子の記述バージョン
これは私が今まで見た中で唯一の場所andでorありnot、C ++では実際の演算子としてリストされています。NetBeansでテストプログラムを作成したときに、構文エラーがあるかのように赤い下線が引かれ、Webサイトが間違っていることがわかりましたが、NetBeansはコンパイルと実行が正常に行われたため、間違っています。 私は!好かれnotているように見えますが、and&& の読みやすさはor文法上の兄弟よりも優れているようです。なぜこれらのバージョンの論理演算子が存在し、なぜだれもそれを使用していないように見えるのですか?これは本当に有効なC ++ですか、それとも言語に含まれていたCとの互換性ですか?

3
ブレースで囲まれたイニシャライザをいつ使用するのですか?
C ++ 11では、クラスを初期化するための新しい構文を使用して、変数を初期化する方法を数多く提供しています。 { // Example 1 int b(1); int a{1}; int c = 1; int d = {1}; } { // Example 2 std::complex<double> b(3,4); std::complex<double> a{3,4}; std::complex<double> c = {3,4}; auto d = std::complex<double>(3,4); auto e = std::complex<double>{3,4}; } { // Example 3 std::string a(3,'x'); std::string b{3,'x'}; // …

12
C ++のMavenのような依存関係管理?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 3年前休業。 この質問を改善する いくつかのサブプロジェクトに分割されているC ++プロジェクトがあるとします。サブプロジェクトはすべてDLLを生成し、開発者のさまざまなチームが各サブプロジェクトに取り組みます。メインプロジェクトをビルドしたい場合、すべてのサブプロジェクトを自分でビルドする必要がないようにする方法はありますか? 要するに、MavenがJavaに対して行うのと同様の方法で、依存関係の管理(つまり、バイナリファイルとヘッダーに対する)を行うものを探しています。 実際、私はこれにMavenを使用しようとしましたが、手動でかなり頻繁にパッケージを作成する必要があるため、これはかなり面倒です。Mavenは最新の変更を取得できません。また、Maven内からNAntを呼び出さなければならないので、コンパイルの実行は少しハックです(NAntの機能を使用してVisual Studioソリューションを直接ビルドします)。 これを行うためのヒントやアイデアはありますか?

7
C / C ++ with GCC:リソースファイルを実行可能ファイル/ライブラリに静的に追加します
GCCを使用してリソースファイルを実行可能ファイルまたは共有ライブラリファイルに直接静的にコンパイルする方法を知っている人はいますか? たとえば、決して変更されないイメージファイルを追加します(変更される場合は、とにかくファイルを置き換える必要があります)。ファイルシステム内に配置したくないです。 これが可能である場合(そして、Visual C ++ for Windowsもこれを行うことができるためだと思います)、独自のバイナリに格納されているファイルをどのようにロードできますか?実行可能ファイルはそれ自体を解析し、ファイルを見つけて、そこからデータを抽出しますか? たぶん、まだ見たことがないGCCのオプションがあるでしょう。検索エンジンを使用しても、実際には適切なものが出てきませんでした。 共有ライブラリと通常のELF実行可能ファイルで機能させるには、これが必要です。 どんな助けでもありがたいです

1
gotoリーク変数を使用しますか?
gotoデストラクタなどを呼び出さずにコードの一部をジャンプするのは本当ですか? 例えば void f() { int x = 0; goto lol; } int main() { f(); lol: return 0; } ではないだろうx漏洩しますか?
94 c++  goto 

3
<cstdint>と<stdint.h>
違いは何であるstdint.hとはcstdint? どちらもMSVC(Visual Studio 2010)とgcc-4.5.1で利用できます。また、どちらもintX_t/ uintX_tタイプを定義します(ここXで、タイプのサイズはバイト単位です)。 両方のヘッダーの理論的根拠が同じ(ポータブルタイプ)の場合、どちらを決定するためにどのような決定を行う必要がありますか? stdint.h、任意の名前空間なしに、各タイプを定義cstdint内の型の嘘stdの名前空間。 定義された型をstd名前空間に含める、または含めない理由はありますか?2つのヘッダーの違いは何ですか? cstdintファイル拡張子がなく、cプレフィックスをstdint.h使用し、.h拡張子を使用します。 このヘッダーの命名規則は何ですか?cプレフィックスは、これはCライブラリであることを示していますか?にファイル拡張子がないのには理由がありますcstdintか?
94 c++  stdint  cstdint 

13
C ++で時差を計算する方法
C ++で時差を計算する最良の方法は何ですか?プログラムの実行速度を計っているので、ミリ秒に興味があります。さらに良いのは、seconds.milliseconds .. 受け入れられた回答は機能しますが、コメントに記載されているようにctimeまたはtime.hを含める必要があります。
94 c++ 

8
if(bool)またはif(int)のどちらが速いですか?
どちらの値を使用する方が良いですか?ブール値trueまたは整数1? 上記のトピックにより、私はいくつかの実験をbool行いintましたif。好奇心からこのプログラムを書きました。 int f(int i) { if ( i ) return 99; //if(int) else return -99; } int g(bool b) { if ( b ) return 99; //if(bool) else return -99; } int main(){} g++ intbool.cpp -S 次のように、各関数のasmコードを生成します。 asmコード f(int) __Z1fi: LFB0: pushl %ebp LCFI0: movl %esp, %ebp LCFI1: cmpl …
94 c++  assembly  int  boolean 

4
試験的::ファイルシステムのリンカーエラー
新しいc ++ 1z機能を実際にgcc 6.0内の開発の先頭で使用しようとしています。 この小さな例を試してみると: #include &lt;iostream&gt; #include &lt;experimental/filesystem&gt; namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/home/pete/checkit"; std::cout &lt;&lt; "p1 = " &lt;&lt; p1 &lt;&lt; std::endl; } 私が得た: / opt / linux-gnu_6-20151011 / bin / g ++ --std = c ++ 1z main.cpp -O2 -g -o go …
94 c++  gcc  c++17 

6
Visual StudioはC ++ヘッダーファイルをどこで探しますか?
SourceForge(興味があればHoboCopy)からC ++アプリケーションのコピーをチェックアウトして、コンパイルしようとしました。 Visual Studioから、特定のヘッダーファイルが見つからないことがわかりました。ソースツリーでファイルを見つけましたが、コンパイル時に見つかるように、どこに置く必要がありますか? 特別なディレクトリはありますか?

3
gslライブラリのspanとarray_viewの違いは何ですか?
最近のいくつかの会議のプレゼンテーションで、Bjarne StroustrupなどがC ++の新しいコーディングガイドラインとそれらをサポートするいくつかの型について言及していると聞きました。 具体的には、関数のパラメーターとしてではspan&lt;T&gt;なく(T* p, int n)(話の開始時刻の約32:00に)の例を覚えています。しかし、私は使用するための提案も覚えていますarray_view&lt;T&gt;。それらは2つの選択肢ですが同じ概念ですか?または私は物事を混乱させていて、それらは実際にはそれほど関連していませんか? 私は彼らの両方がどうあるべきかについての信頼できる定義を見つけることができないようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.