問題タブ [undefined-behavior]

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.

0 投票する
11 に答える
15676 参照

c - あなたが遭遇するCの一般的な未定義/未指定の動作は何ですか?

C言語での不特定の動作の例は、関数への引数の評価の順序です。それは左から右または右から左かもしれません、あなたは知らないだけです。foo(c++, c)これは、評価方法や評価方法に影響しますfoo(++c, c)

知らないプログラマーを驚かせる可能性のある他の不特定の動作はありますか?

0 投票する
11 に答える
249065 参照

c++ - 厳密なエイリアシングルールとは何ですか?

Cでの一般的な未定義動作について尋ねるとき、人々は厳密なエイリアシングルールを参照することがあります。
彼らは何を話している?

0 投票する
11 に答える
75795 参照

c++ - C ++プログラマーが知っておくべき一般的な未定義の動作は何ですか?

C ++プログラマーが知っておくべき一般的な未定義の動作は何ですか?

言う、のように:

0 投票する
8 に答える
6242 参照

c++ - strcpy のセグメンテーション違反

以下のプログラムを検討してください

このプログラムを実行すると、セグメンテーション違反が発生します。

しかし、strcpy を次のように置き換えると、プログラムは正常に実行されます。

したがって、5 文字を超える長さの他の文字列を str にコピーしようとすると、クラッシュするはずです。

では、なぜ「Hello1234567」ではクラッシュせず、「Hello12345678」、つまり長さが 13 または 13 を超える文字列でのみクラッシュするのでしょうか。

このプログラムは 32 ビット マシンで実行されました。

0 投票する
14 に答える
89906 参照

c - これらのコンストラクトがプリインクリメントとポストインクリメントの未定義の動作を使用するのはなぜですか?

0 投票する
5 に答える
2535 参照

c++ - 式(++ x)+(++ x)+(++ x)の結果をどのように説明しますか?

出力はであると思いますが11、実際は12です。なんで?

0 投票する
5 に答える
1286 参照

c++ - const オブジェクトへの読み取り専用アクセスに const_cast を使用することは許可されていますか?

C++ には、配列への読み取り専用アクセスのみを必要とする関数がありますが、const 以外のポインターを受け取ると誤って宣言されています。

const 配列に対してそれを呼び出す必要があります。

これは未定義の動作になりますか?もしそうなら - プログラムはいつUBに実行されますか - const_castを実行して関数を呼び出すとき、または配列にアクセスするときは?

0 投票する
2 に答える
1166 参照

debugging - GUID を単なる乱数と区別する方法はありますか?

GUID とランダム データを区別できることは、あいまいなコードの欠陥をデバッグするときに役立ちます。

Windows では、生成される各 GUID はバージョン 4 であるため、3 番目の部分の最初の半バイトが「4」になります。そのため、16 バイトのシーケンスがその規則に違反している場合、それはバージョン 4 の GUID ではありません。例えば、

バージョン 4 の GUID またはその他のいずれかの可能性がありますが、

バージョン 4 の GUID ではありません。

16 バイトのメモリ ブロックが有効な GUID であるかどうかを示すその他の兆候は何ですか?

0 投票する
6 に答える
10681 参照

c - C の共用体に関する質問 - ある型として保存し、別の型として読み取る - 実装定義ですか?

私が理解している限り、K&R から C のユニオンについて読んでいましたが、ユニオン内の単一の変数はいくつかの型のいずれかを保持でき、何かが 1 つの型として格納され、別の型として抽出された場合、結果は純粋に実装定義されます。

次のコード スニペットを確認してください。

出力:

ここでは、 に値を代入していますが、とのu.ch両方から取得しています。実装定義ですか?それとも私は本当にばかげたことをしていますか?u.chu.i

他のほとんどの人にとっては非常に初心者に見えるかもしれませんが、その出力の背後にある理由を理解することはできません.

ありがとう。

0 投票する
7 に答える
5325 参照

c# - C# で動作が未定義のコード

C++ には、コンパイルはできるが未定義の動作をもたらすコードを作成する方法がたくさんあります(Wikipedia)。C#に似たようなものはありますか? コンパイルはできるが未定義の動作をするコードを C# で記述できますか?