※ ChatGPTを利用し、要約された質問です(原文:Cの素人がやってしまう・・・と言われた使い方)
Cのset関数の使い方についての質問
関数set()を作って、下にコメントアウトされているプログラム
と全く同じ動作をするプログラムを完成させよ。
main内部を変更してはならない。
関数set()内では鈎括弧を使用してはならない。
という問題で、終わるときにチェックされたのですが
どうもsetでの中身が素人がよくやるやつ、といわれました。
int x[MAX]とやれ?ということなのでしょうか
それともやはり&(*(x+i))の部分がおかしいということでしょうか?
確かにアドレスにアドレスを聞いているような理解としか、今は言いようがないのですが
そいえば前回&*を使ってる人がいるけど・・・という話を聞きました
何かご指摘あればうれしいです
以下がコードになります。
#include <stdio.h>
#define MAX 10
void set(int *x);
int
main()
{
int x[MAX];
int j;
set(x);
printf("KEKKA\n");
for (j = 0; j < MAX; ++j) {
printf("%d\n", x[j]);
}
return 0;
}
void
set(int *x)
{
int i;
for(i = 0; i < MAX; ++i){
scanf("%d",&(*(x+i)));
}
}
/*
int
main()
{
int x[MAX];
int j;
for (j = 0; j < MAX; ++j) {
scanf("%d", &x[j]);
}
printf("KEKKA\n");
for (j = 0; j < MAX; ++j) {
printf("%d\n", x[j]);
}
return 0;
}
*/
お礼
試したところできました。 しかしなぜx+iなのか・・・ 先頭のアドレスから順に読み込むよ、という理解だとは思うのですが そのまま直接アドレスを読み込んでいるから&がいらないということなのでしょうか ちょっといろいろ調べてみます ありがとうございました