問題タブ [array-initialization]
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 - 構文エラー: ';' の前に ']' がありません C の配列宣言エラー
Visual c++ を使用して、c で書いています。
コンパイラは、次のコードでエラーを表示します。
私が得るエラー:
メインの内側と外側で、定数を異なる方法で宣言しようとしました。それでもうまくいきません。誰かが私を助けてくれれば本当に感謝します...
c# - この VB.NET 配列式を C# に変換するにはどうすればよいですか
VB.net では、次のように記述できます。
そして、Contains
Linq.Enumerable(Of T) からのもののようです。
C# への変換に問題があります。 Developer Fusionのようなオンライン変換ツールを使用すると、次のようになります。
しかし、あまり役に立たないシンボルを解決できないと言って、コンパイルしませんContains
。単純な構文の問題だと確信していますが、このような例を何と呼んでいるのかわかりません。
式をインラインで評価するために配列を使用しているだけなので、配列をインスタンス化する必要はありません。これは VB.NET で可能のようです。これを何と呼びますか - 静的配列ですか? 定数配列?匿名配列?リストされているもののいくつかの組み合わせ?
これをC#で書く方法と、これが何と呼ばれているかを知りたいです(質問のタイトルとタグを更新して、誰かが答えられるときに尋ねていることをよりよく反映します)。ありがとう!
c - なぜ「char *ptr={'R','E','D','\0'};」「char *ptr="RED";」中に警告が多すぎます。正常に動作します?
次のコードを検討してください。
次の警告のリストが表示されます。
しかし、最初のステートメントをコメント アウトし、2 番目のステートメント (私のコードではコメント アウトされています) を有効にすると、正常に動作します。
なぜそうなのですか?2番目のケースと同じように、最初のケースでは同じ配列へのポインターが割り当てられないのはなぜですかptr
?これの厳密な技術的理由は何ですか?
c - 関数内の配列を関数の戻り値で初期化できますか?Is "int arr[2]={strcmp("a","a"),strcmp("3","5")};" 正しい?
関数の戻り値は定数と見なされないため、静的ストレージ型の変数だけが初期化されないことが予想されますか?その引数を使用すると、次の宣言は C で有効ではありません。エラーや警告なしでコンパイルされ、出力されます期待通りです。
Result
0,-1
c - 可変長配列の初期化
可変長配列コンパイラを初期化すると、次のエラー メッセージが表示されます。
コードスニペット:
可変長配列はどのように初期化する必要がありますか? そして、なぜすべての要素が0
以下の方法で初期化されないのか;
?
c - メイン以外の関数での配列の初期化が一時的なのはなぜですか?
これは、メインと関数「checkCollisionOrFood()」で配列「turn[20]」を初期化するコードです。4 つの値は、turn[0]、turn[1]、turn[2]、turn[3] です。メイン関数でゼロに初期化され、残りは「checkCollisionOrFood()」で初期化されています。これが障害の開始場所です。「checkCollisionOrFood()」でターン[4] = 0を初期化し、どこにでもアクセスすると、0のままになりますどんな機能でも!次のターン[]、つまりターン[5]を初期化すると、ターン[4]の値が枯渇します。つまり、ターン[4]にはガベージ値があります。ターン[20]はグローバル変数であり、そのインデックス「ヘッド」もグローバルです.I 「この問題で立ち往生しています。助けてください。これが私の完全なコードです」
/これは、turn[] が初期化される場所です。ここで turn[head] にアクセスすると、つまり iniliazition の直後に正しい値が返されますが、前の値にアクセスすると、turn[head-1] を意味し、ガベージ値が返されます/
/このステートメントにより、ターン[4]の初期化直後にターン[4]の値をチェックして正しい答えを出し、ターン[5]の初期化とターン[4]へのアクセス後にゴミが発生します。/
/これらの turn[] の値は、アクセス先に関係なく変更されません。/
}
Plzは私にそれから抜け出すことを提案します。
c - 「要素ごと」と「指定」の両方の手法を併用して配列を初期化すると、予期しない出力が発生する
element-by-element
C99 は、次のように&designated
メソッドを一緒に使用して配列を初期化する機能を提供します。
コードの実行時:
(はに初期化され、指定子によって再び初期化されることに注意してください) (これは) が(指定子として
)に置き換えられることを期待していたため、o/p は次のようになります。Element 0
2
[0]
9
element 0
2
9
[0] = 9
残念ながら、o/p が来たので、私は間違っていました。
予期しない o/p の説明はありますか?
java - 配列変数なしでJavaの静的配列を反復処理する
Ruby では、次のようなことができます。
使用しているステートメントで定義された配列を反復処理します。Javaで配列を次のように定義できるので:
次のようなループを設定することで、変数の定義を回避できることはわかっています。
しかし、最初に配列を含む変数を定義せずに、Javaがより簡潔なものを持ち、動的割り当てを回避できるようにすることを望んでいました。次のような構文はありますか?
それは私が欠けているJavaで動作するより簡潔ですか、それとも私の唯一の選択肢を超えた解決策ですか?
c - コードのブロック内で値 0 に初期化された配列
これがスニペットです
さて、配列の正確な境界がわからないので、scanf * を使用して変数 * として取り込む必要があります。そして、作成された配列にはガベージ値が含まれています。そのためには、各要素を 0 に初期化する必要があります。これが必要だからです。
ループ内で毎回初期化する必要なく、これを機能させる方法はありますか?
ありがとう
編集 calloc を使用してメモリを割り当てることができると思います。使用されるメモリに違いはありますか?