Proszę wiedzieć, że jestem jeszcze bardzo nowe do C i wskaźniki w ogóle ... To dla klasy więc nie pytam o wyraźnej kod, tylko pomóc zrozumienia pojęć .Wskaźniki i pętle w C
Próbuję utworzyć pętlę do przypisywania losowych wartości do int wewnątrz struktury. Problem występuje, gdy przypisuję wartości do bieżącej iteracji wskaźnika lub tablicy.
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;
}
Teraz z mojego zrozumienia, co jest najprawdopodobniej nieprawidłowe, powinien mieć możliwość korzystania z students[i]
przypisanie wartości do każdej iteracji, ale VS 2010 mówi mi „wyrażenie musi mieć typ wskaźnika.” Czy to już nie wskaźnik? Został przekazany do funkcji jako wskaźnik, prawda?
"Nie proszę o wyraźny kod, a jedynie pomoc w zrozumieniu koncepcji." PLUS nie rzuciłeś zwracanej wartości 'malloc()' - jest to definitve +1. –
* Treść * twojej tablicy nie jest * wskaźnikiem * dla studentów; to * jest * strukturą ucznia. Więc w takim przypadku prześlij "->" i zamień na ".". – WhozCraig
Czy jestem jedynym dręczonym przez brakujący nawias klamrowy? :-) – Massimiliano