循环请知道,我还是很新的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