タグ付けされた質問 「sizeof」

sizeofは、式またはデータ型のサイズをバイト単位で返すための標準C / C ++演算子を指します。


13
Pythonでオブジェクトのサイズを確認するにはどうすればよいですか?
Pythonで文字列や整数などのオブジェクトのサイズを取得する方法を知りたいです。 関連質問:Pythonリスト(タプル)には要素ごとに何バイトありますか? 値のサイズを指定するサイズフィールドを含むXMLファイルを使用しています。このXMLを解析してコーディングを行う必要があります。特定のフィールドの値を変更する場合は、その値のサイズフィールドを確認します。ここで、入力するゴングの新しい値がXMLと同じサイズかどうかを比較します。新しい値のサイズを確認する必要があります。紐の場合はその長さと言えます。しかし、int、floatなどの場合、私は混乱しています。

9
sizeof(x ++)がxを増分しないのはなぜですか?
以下は、dev c ++ウィンドウでコンパイルされたコードです。 #include <stdio.h> int main() { int x = 5; printf("%d and ", sizeof(x++)); // note 1 printf("%d\n", x); // note 2 return 0; } 私は期待してx実行した後、6であることを注記1を。ただし、出力は次のとおりです。 4 and 5 注1のx後、なぜ増加しないのか、誰か説明できますか?
505 c  sizeof 

13
'sizeof'(配列を指すポインター)を見つける方法は?
まず、ここにいくつかのコードがあります: int main() { int days[] = {1,2,3,4,5}; int *ptr = days; printf("%u\n", sizeof(days)); printf("%u\n", sizeof(ptr)); return 0; } ptr(32ビットシステムでは4バイトであるサイズを指定する代わりに)指している配列のサイズを確認する方法はありますか?
309 c  arrays  pointers  sizeof 

19
JavaScriptオブジェクトのサイズを取得する方法は?
JavaScriptオブジェクトが占めるサイズを知りたい。 次の関数を取ります: function Marks(){ this.maxMarks = 100; } function Student(){ this.firstName = "firstName"; this.lastName = "lastName"; this.marks = new Marks(); } 今私はインスタンス化しますstudent: var stud = new Student(); 私ができることをできるように stud.firstName = "new Firstname"; alert(stud.firstName); stud.marks.maxMarks = 200; 等 これで、studオブジェクトはメモリ内である程度のサイズを占有します。いくつかのデータとより多くのオブジェクトがあります。 studオブジェクトが使用しているメモリ量を確認するにはどうすればよいですか?sizeof()JavaScriptのようなものですか?のような単一の関数呼び出しでそれを見つけることができれば、それは本当に素晴らしいでしょうsizeof(stud)。 私は何ヶ月もインターネットを検索してきましたが、見つかりませんでした(いくつかのフォーラムで質問されました-返信はありません)。


7
「sizeof(a?true:false)」が4バイトの出力を提供するのはなぜですか?
sizeof三項演算子を使用した演算子に関する小さなコードがあります。 #include <stdio.h> #include <stdbool.h> int main() { bool a = true; printf("%zu\n", sizeof(bool)); // Ok printf("%zu\n", sizeof(a)); // Ok printf("%zu\n", sizeof(a ? true : false)); // Why 4? return 0; } 出力(GCC): 1 1 4 // Why 4? しかし、ここで、 printf("%zu\n", sizeof(a ? true : false)); // Why 4? 三項演算子はbooleanタイプを返し、sizeof …

4
sizeof(my_arr)[0]がコンパイルされ、sizeof(my_arr [0])と等しいのはなぜですか?
なぜこのコードはコンパイルするのですか? _Static uint32_t my_arr[2]; _Static_assert(sizeof(my_arr) == 8, ""); _Static_assert(sizeof(my_arr[0]) == 4, ""); _Static_assert(sizeof(my_arr)[0] == 4, ""); 最初の2つのアサートは明らかに正しいですがsizeof()、配列として処理できない整数リテラルに評価する必要があることを理解しているため、最後の行が失敗することを期待していました。つまり、次の行が失敗するのと同じ方法で失敗します。 _Static_assert(4[0] == 4, ""); 興味深いことに、以下は実際にコンパイルに失敗します(同じことをする必要がありますか?): _Static_assert(*sizeof(my_arr) == 4, ""); エラー:単項 '*'の型引数が無効です( 'long unsigned int'があります)_Static_assert(* sizeof(my_arr)== 4、 ""); それが重要であれば、私はgcc 5.3.0を使用しています
129 c  sizeof 



9
Cのsizeof単一の構造体メンバー
別の構造体に依存する構造体を宣言しようとしています。sizeof安全・徹底的に使いたい。 typedef struct _parent { float calc ; char text[255] ; int used ; } parent_t ; 次にchild_t、と同じサイズの構造体を宣言したいと思いparent_t.textます。 これどうやってするの?(以下の疑似コード。) typedef struct _child { char flag ; char text[sizeof(parent_t.text)] ; int used ; } child_t ; parent_tおよびstruct _parentでいくつかの異なる方法を試しましたが、私のコンパイラは受け入れません。 トリックとして、これはうまくいくようです: parent_t* dummy ; typedef struct _child { char flag ; char text[sizeof(dummy->text)] …
109 c  struct  sizeof 

13
配列パラメーターのサイズがmain内と同じでないのはなぜですか?
パラメータとして送信された配列のサイズがmain内と同じではないのはなぜですか? #include <stdio.h> void PrintSize(int p_someArray[10]); int main () { int myArray[10]; printf("%d\n", sizeof(myArray)); /* As expected, 40 */ PrintSize(myArray);/* Prints 4, not 40 */ } void PrintSize(int p_someArray[10]){ printf("%d\n", sizeof(p_someArray)); }
104 c  arrays  function  sizeof 

12
なぜC文字リテラルが文字ではなく整数なのですか?
、C ++でsizeof('a') == sizeof(char) == 1。これは'a'文字リテラルでありsizeof(char) == 1、標準で定義されているため、直感的に理解できます。 ただし、Cではsizeof('a') == sizeof(int)。つまり、C文字リテラルは実際には整数であるように見えます。なぜ誰か知っていますか?私はこのCの癖について多くの言及を見つけることができますが、なぜそれが存在するのかについての説明はありません。
103 c++  c  char  sizeof 

3
sizeof(int)が正しいのに、sizeof intが間違っているのはなぜですか?
私たちは、それが知っているsizeof任意のデータ型と式のサイズを計算するために使用される演算子であり、かつオペランドが式の場合は、括弧を省略することができます。 int main() { int a; sizeof int; sizeof( int ); sizeof a; sizeof( a ); return 0; } sizeof他の人が正しい間、の最初の使用法は間違っています。 gccを使用してコンパイルすると、次のエラーメッセージが表示されます。 main.c:5:9: error: expected expression before ‘int’ 私の質問は、C標準がこの種の操作を許可しない理由です。ウィルsizeof int任意のあいまいさを引き起こしますか?
96 c++  c  sizeof 

3
sizeof(char)!= 1、または少なくともCHAR_BIT> 8のマシンはありますか?
OverаэтотвопросестьответынаStack Overflowнарусском:Кто-нибудьвстречалвсвоейпрактикеsizeof(char)!= 1? マシン(またはコンパイラ)はどこにありsizeof(char) != 1ますか? DOES C99標準では、と言っているsizeof(char)標準準拠の実装に正確に1でなければなりませんか?ある場合は、セクション番号と引用を教えてください。 更新: バイト(最小読み取りは4バイト、アラインメント済み)をアドレス指定できないマシン(CPU)があるが、バイトの4秒(uint32_t)のみの場合、このマシンのコンパイラーはsizeof(char)4に定義できますか? sizeof(char)1になりますが、charは32ビット(CHAR_BITマクロ)になります Update2: しかし、sizeof結果はバイトではありません!CHARのサイズです。そしてcharは2バイト、または(多分)7ビットにすることができますか? Update3:わかりました 。すべてのマシンが持っていsizeof(char) == 1ます。しかし、どのマシンにありCHAR_BIT > 8ますか?
93 c  char  standards  sizeof  c99 

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