循環請知道,我還是很新的C和指針一般...... 這是一類,所以我不要求明確的代碼,不僅有助於理解的概念。指針和用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]
賦值給每個迭代,但相較於2010年告訴我「的表述必須有一個指針類型。」它不是一個指針嗎?它作爲一個指針傳遞給函數,對吧?
「我不是要求明確的代碼,只是幫助理解概念。」 PLUS你沒有鑄造'malloc()'的返回值 - 這是一個definitve +1。 – 2012-10-17 20:01:54
你的數組的*內容*不是*指向學生結構的指針;它*是*學生結構。因此,在這種情況下丟失' - >'的用法並替換爲'。'。 – WhozCraig
我是唯一一個被缺少大括號困擾的人嗎? :-) – Massimiliano