【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.21866

多次元配列のメモリ確保
投稿者---joker99(2005/07/12 14:28:20)


あるC++の教科書では多次元配列のメモリ確保は
double (*a) [80];
a = new double [10][80];
のようにすると書かれています。

ところが、このように宣言してメモリを確保した後、
関数の2次元配列の引数としてaを渡そうとすると、
double (*)80型はdouble**型に変換できないと、
コンパイル時にエラーになります。

double **aと宣言してメモリを確保する方法があるようでしたら
教えてください。

コンパイラはborland bcc32をwindows XP上で使用しています。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:多次元配列のメモリ確保 21867 nop 2005/07/12 15:12:30
<子記事> Re:多次元配列のメモリ確保 21868 2005/07/12 15:17:20
<子記事> Re:多次元配列のメモリ確保 21869 YuO 2005/07/12 15:18:28


No.21867

Re:多次元配列のメモリ確保
投稿者---nop(2005/07/12 15:12:30)


>関数の2次元配列の引数としてaを渡そうとすると、
>double (*)80型はdouble**型に変換できないと、
>コンパイル時にエラーになります。

引数の型を「double (*)[80]」に汁。


この投稿にコメントする

削除パスワード

No.21868

Re:多次元配列のメモリ確保
投稿者---〜(2005/07/12 15:17:20)


以下参照
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200506/05060005.txt


この投稿にコメントする

削除パスワード

No.21869

Re:多次元配列のメモリ確保
投稿者---YuO(2005/07/12 15:18:28)


>あるC++の教科書では多次元配列のメモリ確保は

C++に「多次元配列」なるものは存在しません。

int array[10][20];
とあれば,
「『【int】型を要素とする,20個の要素からなる配列』型を要素とする,10個の要素からなる配列」型
です。


>double (*a) [80];

これは,
「『【double】型を要素とする,80個の要素からなる配列』型を参照するポインタ」型
の宣言です。
double a[10][80];
と宣言された配列aが,Array-to-Pointer conversionによってポインタに変換された場合に変換される型でもあります。


これを引数として受け取る関数は,
void func (double (*a)[80]);
void func (double a[][80]);
のような形になります。


それに対して,
>double **aと宣言してメモリを確保する方法があるようでしたら
double **a;
は,
「『【double】型を参照するポインタ』型を参照するポインタ」型
になります。

先のaからの変換ルートが存在しないため,
>double (*)80型はdouble**型に変換できないと、
というエラーになります。


double **a;
に対してメモリを確保するのであれば,例えば
a = new double * [10];
for (int i = 0; i < 10; ++i) {
    a[i] = new double [80];
}

のように確保する必要があります。



この投稿にコメントする

削除パスワード

No.21902

Re:多次元配列のメモリ確保
投稿者---joker99(2005/07/13 18:20:55)


ご丁寧に解説していただいてありがとうございました。
問題が解決しました。




この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧