rawファイルを読み込み、そのコピーを作成するプログラムを、Visual Studio 2019で作成しています。
↓これだと上手くいくんですが
C
1#include <stdio.h> 2 3#define W 25 4#define H 25 5void main() 6{ 7 unsigned char img[H][W]; 8 FILE *fp1,*fp2; 9 10 fp1 = fopen("fxct.raw", "rb"); 11 fp2 = fopen("fxct_cpy.raw", "wb"); 12 13 fread(img, sizeof(unsigned char), H * W, fp1); 14 fwrite(img, sizeof(unsigned char), H * W, fp2); 15 16 fclose(fp1); 17 fclose(fp2); 18}
↓これだと、コンパイルしようとすると「式には低数値が必要です。」というエラーメッセージが表示されます。
C
1#include <stdio.h> 2 3void main() 4{ 5 int W = 25; 6 int H = 25; 7 unsigned char img[H][W]; 8 FILE *fp1,*fp2; 9 10 fp1 = fopen("fxct.raw", "rb"); 11 fp2 = fopen("fxct_cpy.raw", "wb"); 12 13 fread(img, sizeof(unsigned char), H * W, fp1); 14 fwrite(img, sizeof(unsigned char), H * W, fp2); 15 16 fclose(fp1); 17 fclose(fp2); 18}
最初に#defineで定義するのと、途中でintで定義するのでなぜ違いが出るのでしょうか?
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。