pointerを付け忘れていますとエラーメッセージが出ます。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: pointerを付け忘れていますとエラーメッセージが出ます。

Re: pointerを付け忘れていますとエラーメッセージが出ます。

#3

by みけCAT » 6年前

やきにくおいしい さんが書きました:このプログラムを実行したところ、pointerを付け忘れていますとエラーメッセージが表示されました。どうしてでしょうか。
コンパイラが書かれていないですが、int型のmin、max、*pに対し間接演算子を使っているが、int型はポインタではないのでデリファレンスできないからであると予想できます。

Re: pointerを付け忘れていますとエラーメッセージが出ます。

#2

by box » 6年前

コード:

#if 0
こういうことがしたかったのでしょうか
#endif
/*外部変数を使ったプログラム*/
#include<stdio.h>

int max, min;

void maxmin(int data[10]);

int main(void)
{
    int data[10] = { 0, 2, 1, 4, 3, 6, 5, 8, 7, 9 };

    maxmin(data);
    return 0;
}
void maxmin(int data[10])
{
    int i, *p;

    p = data;
    max = min = *p;
    for (i = 1; i < 10; i++) {
        if (*(p + i) > max) {
            max = *(p + i);
        }
        else if (*(p + i) < min) {
            min = *(p + i);
        }
    }
    printf("最大値=%d,最小値=%d\n", max, min);
}

pointerを付け忘れていますとエラーメッセージが出ます。

#1

by やきにくおいしい » 6年前

コード:

/*外部変数を使ったプログラム*/
#include<stdio.h>
int max,min;
void maxmin(int[10]);
int main(void){
	int data[10]={0,2,1,4,3,6,5,8,7,9};
	maxmin(data);
	return 0;
}
void maxmin(int data[10]){
	int i,*p;
	p=data;
	max=*p;
	min=*p;
	for(i=1;i<10;i++){
		if(**p+i>max){
			*max=**p+i;
		}
		else if(*p+i<min){
			*min=**p+i;
		}
		printf("最大値=%d,最小値=%d",max,min);
	}
C言語初心者です。このプログラムを実行したところ、pointerを付け忘れていますとエラーメッセージが表示されました。どうしてでしょうか。

ページトップ