問題タブ [size-t]

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 投票する
1 に答える
1529 参照

c++ - size_t のサイズは常に void のサイズと同じです *

のサイズはsize_t常に のサイズと同じvoid *ですか?

または、一部のプラットフォーム/コンパイラにはいくつかの例外がありますか?

0 投票する
3 に答える
1581 参照

c - 符号なし変数をアンダーフローしてからオーバーフローするのは悪いことですか?

クラア。

私はプログラミング学校の学生で、25 行未満のコードで C 関数を作成する必要があります。したがって、基本的に、すべての行が重要です。時々、次のように割り当てを短縮する必要があります。

このコードの重要な部分は、size_tという名前のカウンターiです。数行のコードを節約するために、ループの条件で事前にインクリメントしたいと思います。しかし、C 標準size_tが unsigned 型として定義している限り、私がここで基本的に行っていることは、i変数を (0 から非常に大きな値に) アンダーフローさせてから (その大きな値から 0 に) 1 回オーバーフローさせることです。

私の質問は次のとおりです。コードを短くしなければならないという悪い慣行に関係なく、 ( ) 変数を -1 に設定し、反復ごとに事前にインクリメントして配列を参照することは安全ですか?unsignedsize_t

ありがとう!

0 投票する
1 に答える
280 参照

c - malloc と size_t が一致していないようです

私が使うとき

mallocのようにfsize * sizeof(size_t)大きなスペースを割り当てる必要があるため、私は本当に疑問に思っていますが、のようにアクセスしようとするbuf + 8*fsizeと、範囲外になります。

ただし、buf+fsizeは正しい場所、ファイルの終わりにあり、アドレスを計算したところです。malloc のように、私にはfsize * sizeof(char)大きなスペースが返されます。

だから、どこが間違っているのか、どんな助けも感謝しています。

0 投票する
1 に答える
93 参照

c++ - size_t の奇妙なループ

を使用してループには入りませんsize_t。なんで?使用するintと、ループに入り、出力は次のようになります。11, 11

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

c - size_t 0x1<<31 は size_t 0x1<<30 よりもはるかに大きい

size_t私が気づいたいくつかの動作に混乱しています:

結果:

今、私はそれsize_tが最低でも16ビットの符号なし整数であることが保証されていることを理解していますが、なぜ0x1<<31それがした値になるのか理解できません.

x86_64 で LLVM を使用しています。

0 投票する
1 に答える
145 参照

c - -1 を size_t にキャストしてループがスタックすることについて

グラスドアのインタビューの質問は次のとおりです。私の知識では、そこから何かを推測することは困難です。適切な質問は何ですか?

size_t 数値を計算するマクロ。ループに入ると、-1 が size_t の数値にキャストされ、ループを開始できなくなります。

Michael Aaron Safyan が示唆するように、次のようになります。

逆に動作します:

for (size_t i = 0; i > ((size_t) -1); i--) {}

説明については、答えを参照してください

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

c++ - size_t を double または int C++ にキャストする方法

私の質問はそれです

size_t データがありますが、今は double または int に変換したいと考えています。

私が何かをするなら

コンパイラは警告を報告します。オーバーフローする可能性があるためです。

ブーストのような方法や、変換を行う他の方法はありますか?

0 投票する
1 に答える
79 参照

foreach - タイプが指定されていても、dmdはタイプを推測できません

ここで、size_t の 2 つの配列に対してロックステップ反復処理を行いたい

しかし、これはコンパイルに失敗します

ただし、 foreach 行を size_t の代わりに uint を使用するように変更すると (私は 32 ビットのラップトップを使用しています)

コンパイルして問題なく動作します。どうしたの?