変数の宣言


アグス  2005-09-29 21:42:31  No: 59159

for(i=0;i<xw;i++)        //xw=400

for(j=0;j<yh;j++)    //yh=400
   {
   m=0.25*i;
   n=0.25*j;
   r_image[m][n]=GetRValue(color);
   }
 }
変数はr_image[m][n] です。変数を宣言所は,
(1)
// xxxView.h : Cxxx.View クラスの宣言およびインターフェイスの定義をします
// インプリメンテーション
public:
unsigned char r_image[m][n];

(2)
// xxxView.cpp : CxxxView クラスの動作の定義を行います。
// CxxxView クラスの描画
unsigned char r_image[m][n];

(1) と(2) の所で宣言してもエーラーが出ないので、両方とも正しいですか?
宣言する時はm と n  の値が書かないとエーラーが出ますね。例えば  unsigned char r_image[400][400];  書くとエーラーが出ない。別の意味で考えると宣言する以外にも、プログラムの中のデータを格納するば場所ですかね??

アグス


Blue  2005-09-29 22:01:20  No: 59160

> (1) と(2) の所で宣言してもエーラーが出ないので、両方とも正しいですか?
正しくありません。

配列の要素数にはconstでない値を指定できません。
new を使って動的に確保するしかないです。


επιστημη  2005-09-29 22:04:22  No: 59161

> 別の意味で考えると宣言する以外にも、プログラムの中のデータを格納するば場所ですかね??

…ごめん、何言ってんだかわかんねぇ orz


アグス  2005-09-30 01:52:56  No: 59162

for(i=0;i<xw;i++)        //xw=400

for(j=0;j<yh;j++)    //yh=400
    {  
        m=0.25*i;
        n=0.25*j;
        r_image[m][n]=GetRValue(color);
    }

宣言するときは  r_image[値][値]と書けば正しいですね。でも、この「値」の数字は上のプログラムの関係どうなるでしょうか。この「値」の数字はfor ループのxw とyh の関係があるでしょうか?例えばr_image[200][200]とかr_image[100][100]と書く時には。。。

又宣言する時  r_image[400][400]と書けば、この範囲以内にプログラムの中で、何回も、どこでも使えるでしょうかね。。

r_image[値][値]は行列ですね。。r_image[100][100]は 100x100の行列ですよね。。。


επιστημη  2005-09-30 02:14:40  No: 59163

…やっぱりなに言ってんのかわかんない。

宣言するときは  r_image[値][値]と書けば正しいですね。でも、この「値」の数字は上のプログラムの関係どうなるでしょうか。この「値」の数字はfor ループのxw とyh の関係があるでしょうか?

r_image[X_MAX][Y_MAX] とすると、当然ながら
xw < X_MAX*4 かつ yh < Y_MAX*4
でなくてはなりません。

> 又宣言する時  r_image[400][400]と書けば、この範囲以内にプログラムの中で、何回も、どこでも使えるでしょうかね。。

訊くまでもない。使えるかどうか、やってみればいいじゃん。

> r_image[値][値]は行列ですね。。r_image[100][100]は 100x100の行列ですよね。。。

です。


KING・王  2005-09-30 02:38:53  No: 59164

少し気になったので。

アグスさんの最初の書き込みに、
> (1)
> // xxxView.h : Cxxx.View クラスの宣言およびインターフェイスの定義をします
> // インプリメンテーション
> public:
> unsigned char r_image[m][n];

> (2)
> // xxxView.cpp : CxxxView クラスの動作の定義を行います。
> // CxxxView クラスの描画
> unsigned char r_image[m][n];
とありますが、この場合、(1)のr_image[][]と(2)のr_image[][]は見た目に同名ですが、
それぞれ別のオブジェクト(インスタンス?)になるのではないでしょうか・・・。
(1)の方は、CxxxViewクラスのメンバ変数であるr_image[][]ですし、
(2)の方は、グローバル変数か、または、CxxxViewクラスのメンバ関数内の、
ローカル変数ではないでしょうか?
#外していたらごめんんさい。

とりあえず、
επιστημη 2005/09/29(木) 13:04:22
> …ごめん、何言ってんだかわかんねぇ orz
には、激しく同意しますが・・・。


dark  2005-09-30 02:43:31  No: 59165

http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200509/05090036.txt
といい、このような質問の仕方で、第3者に伝わると思っているのでしょうか?


ふぁじぃ男  2005-09-30 08:51:45  No: 59166

書き込みを見た限り、Cのことを理解していないんではないでしょうか。

>又宣言する時  r_image[400][400]と書けば、この範囲以内にプログラムの中で、何回も、どこでも使えるでしょうかね。。
スコープについて勉強してください。。

>r_image[値][値]は行列ですね。。r_image[100][100]は 100x100の行列ですよね。。。
行列…でもいいと思うけど、多分一般にはこれを配列と言います。

ところで
m=0.25*i;
n=0.25*j;
r_image[m][n]
ってエラーになるのでは??


World  2005-10-02 08:59:56  No: 59167

>>m=0.25*i;
>>n=0.25*j;
>>r_image[m][n]=GetRValue(color);

配列の使用方法が基本的に間違っています。

>>number[1] = variable;
というのは正解です。

でも配列の要素数の中身をfloatまたはdouble型で使用するのは不可能です。
例えば

>>number[0.1] = variable;
上の配列の使用方法は間違っています。


シャノン  2005-10-02 10:12:23  No: 59168

> 上の配列の使用方法は間違っています。

m および n が整数型であれば問題なかろうかと思います。
その場合、そもそもループカウンタの増分を4にした方が効率がいいように思えますが。


  2005-10-04 03:18:26  No: 59169

まず、日本語の勉強をもう少してからの方が良いかと。
もしくは翻訳前の言葉で・・・英語じゃないと分からないけど。

日本語ネイティブの方ではないですよね?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加