画像の処理について
『ppm形式の画像の読み込み』のプログラムを実行したのですが、
エラーがでてうまくいきません。
どこを修正しなければいけないのか、教えてください。
エラーの内容↓
function 'main':
main.c:17: 警告: passing argument 1 of 'fopen' makes pointer from integer without a cast
main.c: In function 'headerScan':
main.c:35: 警告: ポインタと整数との比較を行なっています
main.c:36: 警告: ポインタと整数との比較を行なっています
main.c:37: 警告: ポインタと整数との比較を行なっています
main.c: In function 'dataScan':
main.c:44: 警告: ポインタと整数との比較を行なっています
プログラム↓
#include <stdio.h>
#include <stdlib.h>
struct image{
int type;
int width;
int height;
int depth;
char *data;
};
int main(int argc, char *argv){
FILE *fpin;
fpin = fopen("argv[1]", "rb");
struct image *img;
headerScan(fpin, img);
img->data = (char *)malloc(sizeof(char)*img->width*img->height*3);
dataScan(fpin, img);
free(img->data);
fclose(fpin);
return 0;
}
int headerScan(FILE *fp, struct image *img){
while(fscanf(fp, "P%d", &(img->type)) == NULL) ;
while(fscanf(fp, "%d %d", &(img->width), &(img->height)) == NULL) ;
while(fscanf(fp, "%d", &(img->depth)) == NULL) ;
return 0;
}
int dataScan(FILE *fp, struct image *img){
int i = 0;
while(fscanf(fp, "%c%c%c", &(img->data[i++]), &(img->data[i++]), &(img->data[i++])) != NULL) ;
return 0;
}
お礼
質問に書いたのは実際のソースではなく、簡略したものでした。 ご指摘頂いてからソース全体を見て確認したところ、 大変恥ずかしい見落としがありました。 short NULL; これです・・・・。 警告でて当然ですよね・・・。 ご回答ありがとうございました。