Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用引用操作符访问结构层_C - Fatal编程技术网

C 使用引用操作符访问结构层

C 使用引用操作符访问结构层,c,C,如何使用for循环和reference操作符在数组中循环 for (i = 0; i < university->size; i++) { if (university->arr->MarkA <= 100) { sum += university->arr->MarkA; count++; } 我使用函数创建了一个大学数组 void build_U

如何使用for循环和reference操作符在数组中循环

for (i = 0; i < university->size; i++)
    {
        if (university->arr->MarkA <= 100)
        {
            sum += university->arr->MarkA;
            count++;
        }
我使用函数创建了一个大学数组

void build_Uni(FILE* in, Uni* university)
{
    int i = 0;
    stud temp;
    char Name[100];
    while (!feof(in))
    {
        fscanf(in, "%s%li%d%d%d", Name, &temp.ID, &temp.MarkA, &temp.MarkB, &temp.HW);
        i++;
    }
    university->size = i;
    rewind(in);
    university->arr = (stud*)malloc(university->size * sizeof(stud));
    if (university->arr == NULL) Get_Lost("Memory allocation failed!");
    else for (i = 0; i < university->size; i++)
        fill_Uni(in, university->arr + i);
}

void fill_Uni(FILE* in, stud* student)
{
    char Name[100];
    fscanf(in, "%s%li%d%d%d", Name, &student->ID, &student->MarkA, &student->MarkB, &student->HW);
    student->name = (char*)malloc((strlen(Name) + 1) * sizeof(char));
    if (student->name == NULL) Get_Lost("Error allocatig memory");
    strcpy(student->name, Name);
}
如何使用for循环和引用在数组中循环 接线员

for (i = 0; i < university->size; i++)
    {
        if (university->arr->MarkA <= 100)
        {
            sum += university->arr->MarkA;
            count++;
        }
我想你指的是解引用操作符
->
,但是引用和解引用与在数组中循环无关;这就是你的for循环的目的

我应该在哪里插入I

这:

for(i=0;isize;i++)
{
如果(大学->arr->马尔卡arr->马尔卡;
计数++;
}
}
应该是这样的:

for (i = 0; i < university->size; i++)
{
        if (university->arr[i].MarkA <= 100)
        {
            sum += university->arr[i].MarkA;
            count++;
        }
}
for(i=0;isize;i++)
{
if(university->arr[i].MarkA arr[i].MarkA;
计数++;
}
}
如何使用for循环和引用在数组中循环 接线员

for (i = 0; i < university->size; i++)
    {
        if (university->arr->MarkA <= 100)
        {
            sum += university->arr->MarkA;
            count++;
        }
我想您指的是解引用操作符
->
,但是引用和解引用与在数组中循环无关;这就是for循环的用途

我应该在哪里插入I

这:

for(i=0;isize;i++)
{
如果(大学->arr->马尔卡arr->马尔卡;
计数++;
}
}
应该是这样的:

for (i = 0; i < university->size; i++)
{
        if (university->arr[i].MarkA <= 100)
        {
            sum += university->arr[i].MarkA;
            count++;
        }
}
for(i=0;isize;i++)
{
if(university->arr[i].MarkA arr[i].MarkA;
计数++;
}
}

关于您的原始问题,您应该按如下方式访问:

University university;
 ...  
for (i = 0; i < university.size; i++) {

    if (university.arr[i].MarkA <= 100)
    {
        sum += university.arr[i].MarkA;
        count++;
    }
    ...
}

关于您的原始问题,您应按如下方式访问:

University university;
 ...  
for (i = 0; i < university.size; i++) {

    if (university.arr[i].MarkA <= 100)
    {
        sum += university.arr[i].MarkA;
        count++;
    }
    ...
}

请显示所有类型声明。您所引用的数组不可见。我无意中未键入它们就发布了,现在我无法再发布90分钟。您不能回答这个问题吗?请创建一个小演示程序,设置您试图编写的代码的环境。我希望看到数组的定义stud,其地址写入
arr
或调用
malloc()
。这与生成一个不同,但类似。旁注:引用运算符是
&
(如:
int i=0;int*p=&i;
)。解引用运算符是
*
(如:
int i=0;int*p=&i;int j=*p;
).但是,您使用的是结构解除引用运算符:
->
(如:
foo->bar
)请显示所有类型声明。您所引用的数组不可见。我无意中未键入它们就发布了,现在我无法再发布90分钟。您不能回答这个问题吗?请创建一个小演示程序,设置您试图编写的代码的环境。我希望看到数组的定义stud,其地址写入
arr
或调用
malloc()
。这与生成一个不同,但类似。旁注:引用运算符是
&
(如:
int i=0;int*p=&i;
)。解引用运算符是
*
(如:
int i=0;int*p=&i;int j=*p;
).但是,您使用的是结构解除引用运算符:
->
(如:
foo->bar
)这段代码很好,但在我看来,在他的问题中,他询问的for循环将位于一个函数内,该函数使用指向
大学的指针struct@bigwillydos:对;不确定OP是在main中使用循环,还是在将
univerity
作为指针传递到的函数中使用循环。相应地扩展了答案。此代码很好,但在我看来,在他的问题中,他询问的for循环将位于一个函数内,该函数的指针指向
大学
struct@bigwillydos:对;不确定OP是在main中使用循环,还是在将
univerity
作为指针传递到的函数中使用循环。相应地扩展了答案。