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]; 書くとエーラーが出ない。別の意味で考えると宣言する以外にも、プログラムの中のデータを格納するば場所ですかね??
アグス
> (1) と(2) の所で宣言してもエーラーが出ないので、両方とも正しいですか?
正しくありません。
配列の要素数にはconstでない値を指定できません。
new を使って動的に確保するしかないです。
> 別の意味で考えると宣言する以外にも、プログラムの中のデータを格納するば場所ですかね??
…ごめん、何言ってんだかわかんねぇ orz
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の行列ですよね。。。
…やっぱりなに言ってんのかわかんない。
宣言するときは 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の行列ですよね。。。
です。
少し気になったので。
アグスさんの最初の書き込みに、
> (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
には、激しく同意しますが・・・。
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200509/05090036.txt
といい、このような質問の仕方で、第3者に伝わると思っているのでしょうか?
書き込みを見た限り、Cのことを理解していないんではないでしょうか。
>又宣言する時 r_image[400][400]と書けば、この範囲以内にプログラムの中で、何回も、どこでも使えるでしょうかね。。
スコープについて勉強してください。。
>r_image[値][値]は行列ですね。。r_image[100][100]は 100x100の行列ですよね。。。
行列…でもいいと思うけど、多分一般にはこれを配列と言います。
ところで
m=0.25*i;
n=0.25*j;
r_image[m][n]
ってエラーになるのでは??
>>m=0.25*i;
>>n=0.25*j;
>>r_image[m][n]=GetRValue(color);
配列の使用方法が基本的に間違っています。
>>number[1] = variable;
というのは正解です。
でも配列の要素数の中身をfloatまたはdouble型で使用するのは不可能です。
例えば
>>number[0.1] = variable;
上の配列の使用方法は間違っています。
> 上の配列の使用方法は間違っています。
m および n が整数型であれば問題なかろうかと思います。
その場合、そもそもループカウンタの増分を4にした方が効率がいいように思えますが。
まず、日本語の勉強をもう少してからの方が良いかと。
もしくは翻訳前の言葉で・・・英語じゃないと分からないけど。
日本語ネイティブの方ではないですよね?
ツイート | ![]() |