• ベストアンサー

全配列に0を入力

colderの回答

  • colder
  • ベストアンサー率43% (30/69)
回答No.8

C99が使えるなら int x[10]; struct foo { int mem[10]; }; *(struct foo*)&x = (struct foo){0}; これなら、内部表現が非0の型でも平気。

関連するQ&A

  • 配列の書き方

    C言語の配列の宣言で unsigned char aaa[256/8] という表現があるのですが、これはどういう意味でしょうか?

  • Javaの配列の宣言方法のメリット?

    1週間ほど前からJavaを独学している者です。 C言語をその前からやっていて、初心者レベル程度ならわかると思います。 そこで、質問です。 C言語の配列宣言:   int array[10]; Javaの配列宣言:   int array[] = new int[10]; 二つの言語とも、要素10個のarray1次元配列変数を宣言していると思います。 C言語の書き方はシンプルなので、納得がいきますが、Javaの方はどうしてこの形で宣言をするのかわかりません。(自分が言語製作者ならシンプルな書き方を採用します) だから、このような宣言の方法をとるということは何か理由があるのだと思います。 自分が思うところ、JavaはC言語より、柔軟で多機能だとおもうので、その影響で汎用性をますために、 長くなっているのかな~?と思っています。 こんごJavaの学習を進めていくと、例えば、   int array[] = new double[10]; //←エラーになりました みたいに型のちがう、宣言が出てきたりするのでしょうか? ちらっと、学習に使っている本をみたところ、動的配列の作成は別の操作で実現しているようなので、 「動的とは関係ないのかな?」と思っています。 長くなりましたが、Javaの配列宣言のメリットを教えてください。

    • ベストアンサー
    • Java
  • 配列を使わずに、変数名を動的にループで回したい

    配列を使わずに、変数名を動的にループで回したい 大学の課題をやっている途中に思ったことなのですが……。 プログラム中に同じ型の変数p1,p2,p3があり、それぞれの変数にループで同じ処理を施したいと思っています。 しかし、「p(i)」や「("p" + i)」などと、変数どうしを別のものとして認識させようとしても、コンパイラから警告が出て上手くいきません。 配列を使えば、このような処理が出来ることはわかるのですが、使う変数名を指定されてしまっているために、今回は配列を使えません。 出来るか出来ないか、出来る場合は方法を知りたいです。 後、今回はC言語のプログラムで利用出来るかが自分にとっての問題なのですが、C言語以外のこのプログラミング言語なら出来る、とかの情報もこの機会に知りたいです。 お答え出来る範囲でいいので、もしよければ回答お願いします。

  • 配列へのキーボード入力

    次のような問題がわからなくて困っています。 まず、キーボード入力により配列の大きさを決め、 その後、先ほど入力した個数のデータをキ-ボードから入力するというものです。 これだけならわかるのですが、条件があって、入力は次のようにするとあります。 2 3 ←配列の大きさ(2行3列) 1 2 3 ←配列に入れるデータ 1行目 4 5 6 ←配列に入れるデータ 2行目 Cプログラミングを始めて間もない初心者です。どなたかよろしくお願いします。

  • 配列数を取得するには

    C言語ははじめたばかりです。 例えば、以下のような配列数を取得するにはどうしたら いいのでしょうか? まさか for ループで'\0'が来るまで回すものか・・・ char test[] = {'あ', 'い', 'う', 'え', 'お'};

  • flaot配列の値格納について

    すみませんC言語の初心者ですが、教えて頂きたいことがあります。 floatの二次元配列に、すべて同じ値をセットしたいのですが この場合、for で配列分ループさせて値をセットするしか ないのでしょうか? memesetのように、セットする方法はないのでしょうか? 宜しくお願いします。

  • MIPSアセンブリ言語で配列を宣言するには?

    現在MIPSアセンブリ言語を学習していますが、配列に相当するものの宣言の仕方を詳しく知りません。 int items[5] ={0,0,0,0,0}; (C言語の場合) のような配列をMIPSで用意するなら、 items: .word 0,0,0,0,0 としてやるなどすればよいことまではわかっていますが、もし配列の要素数が500だった場合、上で0を500個も書かなければならないのでしょうか。短く書ける方法はありませんか。

  • 配列をループでたくさん宣言したいのですが、配列名や変数名を変数で宣言することはできませんか?

    お世話になっております。 タイトル通りの質問です。 日付がファイル名になっているCSVファイルが複数あるのですが、 それをそのまま「array20071020」などという名前の配列に、それぞれ入れて行きたいと思います。ループ処理でなければ出来ないと思うのですが、ループ処理内で配列を宣言していく方法はあるでしょうか。

  • 配列の使い方分かりません

    //整数型の配列を10個準備する。 //ループ文を用いてキーボードから値を10個入力する。(for文を用いる) //入力した値を出力する。 //ループ文を用いて入力値の合計と平均値を求める。(while文を用いる) 以上の課題が出されました。 配列の使い方が分からないので上手くできません。 説明付だとうれしいです。よろしくお願いします。

  • 配列について

    C言語には2次配列までしかないようなのですが3次配列のようなものはできないのでしょうか?