私はまだCとポインター全般に非常に慣れていないことを知っておいてください...これはクラス用であるため、明示的なコードを求めているのではなく、概念を理解するのに役立つだけです。
構造体内の int にランダムな値を割り当てるループを作成しようとしています。この問題は、ポインターまたは配列の現在の反復に値を割り当てるときに発生します。
struct student{
int id;
int score;
};
struct student* allocate(){
/*Allocate memory for ten students*/
int ROSTER_SIZE = 10;
struct student *roster = malloc(ROSTER_SIZE * sizeof(struct student));
/*return the pointer*/
return roster;
}
void generate(struct student* students){
/*Generate random ID and scores for ten students, ID being between 1 and 10, scores between 0 and 100*/
int i = 0;
for (i = 0; i < 10; ++i) {
students[i]->id = i + 1;
students[i]->score = rand()%101;
}
私の理解では、これはおそらく間違っていますが、 を使用students[i]
して各反復に値を割り当てることができるはずですが、VS 2010 では「式にはポインター型が必要です」と表示されます。それはすでにポインターではありませんか?ポインタとして関数に渡されますよね?