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



6
C文字配列の初期化
次の方法で初期化した後、char配列に何が入るかわかりません。 1. char buf[10] = ""; 2. char buf[10] = " "; 3。char buf[10] = "a"; ケース2の場合は、私が考えるbuf[0]べきである' '、buf[1]あるべき'\0'、とからbuf[2]のbuf[9]ランダムな内容になります。ケース3の場合、私は考えるbuf[0]べきである'a'、buf[1]「\ 0」でなければなりません、そしてからbuf[2]のbuf[9]ランダムな内容になります。 あれは正しいですか? そして、ケース1の場合、何が入りますbufか?buf[0] == '\0'以下とからbuf[1]のbuf[9]ランダムな内容でしょうか?

3
構造体を0に初期化する
私がこのような構造体を持っている場合: typedef struct { unsigned char c1; unsigned char c2; } myStruct; この構造体を0に初期化する最も簡単な方法は何でしょうか?以下で十分でしょうか? myStruct _m1 = {0}; または、各メンバーを明示的に0に初期化する必要がありますか? myStruct _m2 = {0,0};
116 c  struct  initialization 

14
List <T>を(容量ではなく)指定されたサイズに初期化する方法は?
.NETは、パフォーマンスがほぼ同じである一般的なリストコンテナーを提供します(配列のパフォーマンスとリストのパフォーマンスの質問を参照)。ただし、初期化はかなり異なります。 配列は、デフォルト値で非常に簡単に初期化でき、定義により、すでに特定のサイズになっています。 string[] Ar = new string[10]; これにより、ランダムなアイテムを安全に割り当てることができます。 Ar[5]="hello"; リストでは物事はよりトリッキーです。同じ初期化を行う2つの方法を見ることができます。どちらもエレガントとは言えません。 List&lt;string&gt; L = new List&lt;string&gt;(10); for (int i=0;i&lt;10;i++) L.Add(null); または string[] Ar = new string[10]; List&lt;string&gt; L = new List&lt;string&gt;(Ar); よりクリーンな方法は何でしょうか? 編集:これまでの答えは、容量を参照していますが、これはリストに事前入力する以外の方法です。たとえば、容量が10で作成されたばかりのリストでは、L[2]="somevalue" 編集2:人々が私がなぜこのようにリストを使用したいのか不思議に思っています、それはそれらが意図された使用方法ではないからです。私には2つの理由があります。 リストは「次世代」の配列であり、ほとんどペナルティなしで柔軟性を追加すると、説得力をもって主張することができます。したがって、デフォルトでそれらを使用する必要があります。初期化が簡単ではないかもしれないと指摘しています。 私が現在書いているのは、より大きなフレームワークの一部としてデフォルトの機能を提供する基本クラスです。私が提供するデフォルトの機能では、リストのサイズは事前にわかっているため、配列を使用することもできます。ただし、どの基本クラスにも動的に拡張する機会を提供したいので、リストを選びます。

3
静的クラスの初期化はいつ行われますか?
静的フィールドはいつ初期化されますか?クラスをインスタンス化することはなく、静的フィールドにアクセスする場合、すべての静的ブロックとプライベート静的メソッドを使用して、その瞬間に(順番に)呼び出されるプライベート静的フィールドがインスタンス化されますか? 静的メソッドを呼び出すとどうなりますか?すべての静的ブロックも実行しますか?メソッドの前?

10
C ++でプライベート静的constマップを初期化する方法は?
辞書または連想配列string=&gt; だけが必要intです。 この場合の型マップC ++があります。 しかし、すべてのインスタンス(-&gt;静的)に必要なマップは1つだけであり、このマップは変更できません(-&gt; const)。 私はこの方法をブーストライブラリで見つけました std::map&lt;int, char&gt; example = boost::assign::map_list_of(1, 'a') (2, 'b') (3, 'c'); このlibなしの他の解決策はありますか?私はこのようなものを試しましたが、マップの初期化には常にいくつかの問題があります。 class myClass{ private: static map&lt;int,int&gt; create_map() { map&lt;int,int&gt; m; m[1] = 2; m[3] = 4; m[5] = 6; return m; } static map&lt;int,int&gt; myMap = create_map(); };

8
宣言するのと同じ行でC#リストを初期化するにはどうすればよいですか。(IEnumerable文字列コレクションの例)
私はテストコードを書いていますが、書きたくありません: List&lt;string&gt; nameslist = new List&lt;string&gt;(); nameslist.Add("one"); nameslist.Add("two"); nameslist.Add("three"); 書きたい List&lt;string&gt; nameslist = new List&lt;string&gt;({"one", "two", "three"}); ただし、{"one"、 "two"、 "three"}は、「IEnumerable string Collection」ではありません。IEnumerable文字列コレクションを使用して、これを1行でどのように初期化できますか?」


10
Delphi変数はデフォルトで値で初期化されますか?
私はDelphiを初めて使用し、デフォルトで初期化されているオブジェクト変数とスタック変数を確認するためにいくつかのテストを実行してきました。 TInstanceVariables = class fBoolean: boolean; // always starts off as false fInteger: integer; // always starts off as zero fObject: TObject; // always starts off as nil end; これは私が他の言語で慣れている動作ですが、Delphiでそれを信頼しても安全かどうか疑問に思っていますか?たとえば、コンパイラの設定に依存しているのか、それともマシンによって動作が異なるのかと思います。オブジェクトのデフォルトの初期化値に依存するのは普通ですか、それともコンストラクタですべてのインスタンス変数を明示的に設定していますか? スタック(プロシージャレベル)変数については、私のテストでは、単一化されたブール値がtrue、単一化された整数が2129993264、未初期化オブジェクトが無効なポインター(つまりnilではない)であることを示しています。それらにアクセスする前に、常にプロシージャレベルの変数を設定するのが標準であると思いますか?

15
ローカル変数がJavaで初期化されないのはなぜですか?
Javaの設計者がローカル変数にデフォルト値を与えるべきではないと感じた理由はありましたか?真剣に、インスタンス変数にデフォルト値を与えることができるなら、なぜローカル変数に対して同じことをできないのでしょうか? また、このブログ投稿へのコメントで説明されているように、問題にもつながります。 さて、このルールは、finallyブロックでリソースを閉じようとするときに最もイライラします。try内でリソースをインスタンス化し、finally内でそれを閉じようとすると、このエラーが発生します。インスタンス化を試行の外に移動すると、試行内にある必要があることを示す別のエラーが表示されます。 とてもイライラします。

4
std :: arrayのデフォルトの初期化?
C ++ 11 std::arrayでは、構文std::array&lt;T, N&gt; x;が配列のすべての要素をデフォルトで初期化することが保証されますか? 編集:そうでない場合、すべての要素をデフォルト値に初期化するためにすべての配列(サイズがゼロの配列を含む)で機能する構文はありますか? 編集:cppreferenceで、デフォルトのコンストラクタの説明は次のように述べています: (constructor) (implicitly declared) (public member function) default-constructs or copy-constructs every element of the array そう答えはイエスかもしれません。しかし、私はそれを標準または将来の標準に従って確認したいと思います。

5
Javaでのブール配列の初期化
私はこのコードを持っています public static Boolean freq[] = new Boolean[Global.iParameter[2]]; freq[Global.iParameter[2]] = false; 誰かが私がここで間違っていることを正確に教えてもらえますか?すべての配列要素をブール値falseに初期化する必要があるだけです。ありがとうございました

7
Cでの配列の初期化に関する混乱
C言語で、次のように配列を初期化する場合: int a[5] = {1,2}; 明示的に初期化されていない配列のすべての要素は、ゼロで暗黙的に初期化されます。 しかし、私がこのような配列を初期化すると: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); 出力: 1 0 1 0 0 わかりません、なぜ代わりにa[0]印刷1するの0ですか?未定義の動作ですか? 注:この質問はインタビューで尋ねられました。

7
Pythonで辞書から属性を設定する
各キーがそのオブジェクトの属性になるような方法で、Pythonのディクショナリからオブジェクトを作成することは可能ですか? このようなもの: d = { 'name': 'Oscar', 'lastName': 'Reyes', 'age':32 } e = Employee(d) print e.name # Oscar print e.age + 10 # 42 私はそれがこの質問のほぼ逆になると思います:オブジェクトのフィールドからのPython辞書

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