- ベストアンサー
配列について
int a[100][100][100] と定義した場合にエラーが出るのですが100を変えずに配列を確保するにはどうしたらいいでしょうか?
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- 配列の定義について
配列とは、同じ形式のデーターを連続した記憶領域で確保するためのものである。 配列を構成する個々の領域を要素と呼び、要素の位置を添え字で示す。 Javaでは配列の先頭の要素を(0)番目と呼ぶ。 今、hairetsuという名前で10個の整数からなる配列を定義したい。 この場合の配列は(0)番目から始まり、終端は(9)番目である。 これを定義するには (int[] hairetsu;) (hairetsu = new int[10];) のように2行で行う方法と、 (int[] hairetsu = (new int[10];) のように、一行で行う方法がある。 Javaでは定義済みの配列の要素数は、配列変数名.(length)で知ることができ、 終端は(length + 1)番目となる。 したがって(length + 1)番目以降を使おうとすると、 配列要素の範囲外で(例外)が発生する。 この文章の( )の中は間違っていますか?
- ベストアンサー
- Java
- 配列が0から確保される理由
配列を確保すると int a[3]; とするとa[0]から確保されます。 なぜだが忘れてしまいました。 誰か教えてください。 すいません。
- ベストアンサー
- C・C++・C#
- 多次元配列について
int[]a = {1,2,3} int[]a = new int[3];//は普通の配列 int[]a = {{1,2,3},{4,5,6}}; int[][]a = new int[3][3]は //2次元配列 int[]a = {{1,2,3}{4,5,6}{7,8,9}};int[][][] = new int[3][3][3]; //は3次元配列 int[][][][]a = new int[3][3][3][3]; //は4次元配列になると思いますがこっちの方はコンパイルエラーが出ないのに int[][][][]a = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; //はコンパイルエラーが出ます どうしてですか?
- 締切済み
- Java
- 多次元配列の動的メモリ
1次の配列aの動的メモリは例えば 「double *a; int num = 3; //配列の数 a = new double [3];」 などとすれば確保できることは分かるのですが、 二次元配列など、多次元配列の動的メモリは どのようにすれば確保できるのですか?
- 締切済み
- C・C++・C#
- 配列の確保の仕方
C言語でプログラムを記述していますが、 確保している配列が多すぎるためか、 access vilation at ・・・ などのエラーが出ます。 <プログラム> #define A 1000 #define B 10000 をグローバルで宣言して、各関数内でこれを用いて宣言しています。 int data[A][B]; double root[A][B]; ・ ・ ・ int score[A][A][B]; などを初めにたくさん宣言しています。 聞くところによると、動的に確保すればいい、とも聞いたんですが、あまり意味がわかりません。 上のエラーメッセージが出ないようにするにはどうすればいいのでしょうか? この説明だけでお分かりいただけないなら、言っていただければ詳しく言います。
- ベストアンサー
- C・C++・C#
- 2次元配列の動的確保&配列の添え字の書式について
(1)2次元配列の動的確保について 1次元配列の動的確保は理解できたのですが、次のプログラムの 文(ⅰ)~(ⅱ)の意味を理解できていないので教えてください。 int **a, j, k, nrows=3, ncolumns=4 ; a = (int **)malloc(nrows * sizeof(int *)); a[0] = (int *)malloc(nrows * ncolumns * sizeof(int)); …(ⅰ) //先頭アドレスに… for(j = 1; j < nrows; j++) a[j] = a[0] + j * ncolumns; …(ⅱ) //この行が特にわかりません。 (2)配列の添え字について この書き方はどういう意味になりますか? out[X_SIZE * (i) + (j)] 分かる方、回答お願いします。
- ベストアンサー
- C・C++・C#
- 配列や連想配列について
言語一般の配列や連想配列について 最近どういう解釈をしていいのか わからなくなってしまいました。 仮にPerlで話をさせてもらいますと、 連想配列%FORMがあるとき、 個々の要素にアクセスする場合 例えば$FORM{'name'}などと記述しますが、 この$FORM{'name'}を みなさんはどのように解釈しているでしょうか? $FORM{' '}にキー nameを 代入しているようなイメージで、 「連想配列%FORMからキー'name'の値を取得する」 という考え方でしょうか? わたしは最近、 $FORM{'name'}はそれ自体が一つの変数という 考え方が出来るのではないかという気がしているのですが、 連想配列の実装から考えると この考え方は正しいのでしょうか? 以前、配列について同様の質問を したことがあります。 例えばC言語でint a[100]と宣言した場合は、 連続的なアドレスに確保されるため、 a[2]はaという名前のアドレスから a + 2 番目の場所という意味になるが、 言語によっては不連続なアドレスに 確保されるため、a[2]は一つの変数名として 考える必要がある・・ との回答でした。 ならば連想配列の場合も もし不連続なアドレスに確保されるならば、 $FORM{'name'} は一つの変数名と 考えたほうが正しいのではないかと 思ったからです。 連想配列の内部的な処理がどうなっているのか 教えて頂きたいです。 よろしくお願いします。
- ベストアンサー
- Perl
- 配列の配列の入れ替え処理(C/C++)
int a[5][2]とすると a[0][0] : 0 a[0][1] : 1 a[1][1] : 2 a[1][1] : 3 a[2][0] : 4 a[2][1] : 5 a[3][0] : 6 a[3][1] : 7 a[4][0] : 8 a[4][1] : 9 こういう形で領域が確保されるはずですが、この配列同士の入れ替えで困っています。 例えば、a[0]とa[4]を交換して a[0][0] : 8 a[0][1] : 9 a[1][1] : 2 a[1][1] : 3 a[2][0] : 4 a[2][1] : 5 a[3][0] : 6 a[3][1] : 7 a[4][0] : 0 a[4][1] : 1 となるようにしたいのです。 普通はスワップするときにテンポラリとして値を保持する物を確保しておくのですが、型がわからず困っています。 普通にint型どうしの入れ替えなら int tmp,a,b; tmp = a; a = b; b = a; とすれば良いのですが、上の配列の配列どうしの入れ替えでどう書けばいいかよくわかりません。自分で書くと「型が違うよ」と怒られてしまいました。 どう書けば入れ替えできるのでしょうか?
- ベストアンサー
- C・C++・C#
- ダストブロアーECOのお困りごとを解決します。エレコム株式会社の製品に関する質問にお答えします。
- ダストブロアーECOのお困りごとについて詳しく解説します。ご利用の製品に関する質問や解決方法をご紹介します。
- ダストブロアーECOのお困りごとを解決する方法をご紹介します。エレコム株式会社の製品についての質問にお答えします。