問題タブ [sizeof]
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 - malloc を使用するたびに警告が表示されるのはなぜですか?
malloc
コードで使用する場合:
からこの警告が表示されgcc
ます:
c - malloc()で割り当てるスペースをどのように知っていますか?
私は完全にCの初心者です、私はC#から来ました。私はメモリ管理とmalloc()
機能について学びました。私もこのコードに出くわしました:
私が理解していないのは、これがどのくらいのスペースを割り当てているかですa_persons_name
。2文字(例:AB)または他の何かを割り当てていますか?
また、未割り当て領域で「幸運」になり、使用できる場合があることも知っていますmalloc
(これにより、データの破損やセグメンテーション違反が発生する可能性があります)。では、割り当てているスペースと必要なスペースをどのように知ることができますか?
javascript - JavaScriptオブジェクトのサイズを取得するにはどうすればよいですか?
JavaScriptオブジェクトが占めるサイズを知りたい。
次の機能を実行します。
今、私はインスタンス化しますstudent
:
私が次のようなことができるように
等
これで、stud
オブジェクトはメモリ内である程度のサイズを占有します。いくつかのデータとより多くのオブジェクトがあります。
stud
オブジェクトが占有しているメモリの量を確認するにはどうすればよいですか?sizeof()
JavaScriptのようなものですか?のような単一の関数呼び出しでそれを見つけることができれば、それは本当に素晴らしいことsizeof(stud)
です。
私は何ヶ月もインターネットを検索してきましたが、見つかりませんでした(いくつかのフォーラムで尋ねられましたが、返信はありません)。
c++ - size_t の否定 (つまり、`-sizeof(struct foo)`)) はどうなりますか?
フォームの式を含む作業中のコードを扱っています
つまり、 a の否定でありsize_t
、C および C++ 標準がこれを確認したときにコンパイラに何を要求するかについては不明です。具体的には、ここや他の場所を見回すとsizeof
、 型の符号なし整数値が返されますsize_t
。符号なし整数を否定するときの指定された動作の明確な参照が見つかりません。あるとすれば、それは何ですか?
編集: わかりましたので、符号なし型の算術演算に関していくつかの良い答えがありますが、これが実際にそのようなものであるかどうかは明らかではありません。これが否定されるとき、それは符号なし整数で動作していますか、それとも符号付き型に変換してそれで何かをしていますか? 標準から期待される動作は、「それが同様の大きさの負の数であると想像し、符号なし値に「オーバーフロー」ルールを適用する」ことですか?
c++ - Tokyo Cabinet と可変サイズの C++ オブジェクト
東京キャビネット(C言語のオリジナルAPI)を使ったシステムをC++で構築しています。問題は、次のようなクラスを保存したいことです:
問題は、ベクトルと文字列が可変長であることです。void* (私のオブジェクト) を Tokyo Cabinet に渡して格納できるようにする場合、オブジェクトのサイズもバイト単位で渡す必要があります。しかし、それは簡単にはできません。
オブジェクトのバイト数を決定する最良の方法は何ですか? または、東京キャビネットに可変長オブジェクトを格納する最良の方法は何ですか?
私はすでにシリアル化ライブラリを探すことを検討しています。
ありがとう
c++ - sizeof() および ctor / 非 ctor 関数内のテンプレート引数
今日は問題が発生しました...小さなテンプレート化されたヘルパー クラスを定義したかったのです。
もちろん、それはコンパイルされません (C2027)。私の質問は、タイプのサイズを取得することは可能ですか? これが必要な理由は、オブジェクトが構築される型がさまざまに定義された構造体である可能性があるため、実行時に使用される構造体のサイズを取得する必要があるためです。
ちょっとした実験を通して、私は頑固なので、ctor では sizeof(T) を使用できますが、非 ctor 関数では使用できないようです。
c++ - 関数に特定のサイズの配列パラメーターがある場合、なぜポインターに置き換えられるのですか?
次のプログラムを考えると、
出力
- 配列が最初の要素へのポインタとして渡されるのはなぜですか?
- それはCからの遺産ですか?
- 基準は何と言っていますか?
- C++ の厳密なタイプ セーフが削除されたのはなぜですか?
c# - サイズの計算におけるMarshal.SizeOfエラー
私は構造を持っています
次のエラーが発生します
System.ArgumentExceptionは未処理でしたMessage="Type'SERVER_USB_DEVICE'は、アンマネージ構造としてマーシャリングできません。意味のあるサイズやオフセットを計算できません。"
次の行で
コードの何が問題になっていますか?
アブドゥル・ハリク
c - C でのポインター実装の詳細
以下にリストした仮定に違反するアーキテクチャを知りたいです。また、すべてのアーキテクチャで間違っている仮定があるかどうか (つまり、完全に間違っている仮定があるかどうか) を知りたいです。
sizeof(int *) == sizeof(char *) == sizeof(void *) == sizeof(func_ptr *)
特定のアーキテクチャーのすべてのポインターのメモリー内表現は、指すデータ型に関係なく同じです。
ポインターのメモリ内表現は、アーキテクチャと同じビット長の整数と同じです。
ポインター データ型の乗算と除算は、コンパイラによってのみ禁止されています。注: はい、これが無意味であることはわかっています。つまり、この誤った使用法を禁止するハードウェア サポートはありますか?
すべてのポインター値は、単一の整数にキャストできます。言い換えれば、セグメントとオフセットをまだ利用しているアーキテクチャは何ですか?
ポインタをインクリメントすることは
sizeof(the pointed data type)
、ポインタによって格納されたメモリ アドレスに加算することと同じです。が の場合、p
は の4 バイト後のメモリ アドレスに等しくなります。int32*
p+1
p
私は、連続した仮想メモリ空間で使用されるポインターに最も慣れています。その使用法については、通常、それらを数直線上のアドレスと考えることで得ることができます。スタック オーバーフローの質問ポインターの比較を参照してください。
c - sizeof float (3.0) 対 (3.0f)
sizeof(3.0) と sizeof(3.0f) の違いは何ですか?
私はそれらの両方が同じ結果(sizeof float)を与えることを期待していました..しかし、それは異なります。
32 ビット マシン、gcc コンパイラでは、sizeof(3.0f) =>4 sizeof(3.0) => 8
なんでそうなの?