c语言指针箭头如何输入输出


#include
#include
struct STU{
    int *score;
};
int main(){
    struct STU *stu;
    stu->score=(int *)malloc(10*sizeof(int));
    for(int i=0;i<3;i++){
        scanf("%d",stu->score+i);
    }
    for(int i=0;i<3;i++){
        printf("%d",*(stu->score));
        (stu->score)++;
    }
    return 0;
}
//用->如何进行输入,输出; 
//输入1 2 3,输出1 2 3 
//我知道++会使结构体报废,因为这里我只用到一次这个结构体 
 
#include<stdio.h>
#include<stdlib.h>
struct STU{
    int *score;
};
int main(){
    struct STU stu;
    stu.score=(int *)malloc(10*sizeof(int));
    for(int i=0;i<3;i++){
        scanf("%d",stu.score+i);
    }
    for(int i=0;i<3;i++){
        printf("%d ",stu.score[i]);
    }
    return 0;
}


STU *stu = new STU;

结构体指针要new之后才能用,或者让它指向已经存在的一个对象,总而言之要指向一块已经分配的空间

这样改,不要移动结构体里面那个指针的指向就行。

#include <stdio.h>
#include <stdlib.h>
struct STU
{
    int *score;
};

int main()
{
    struct STU *stu;
    stu->score = (int *)malloc(10 * sizeof(int));
    for (int i = 0; i < 3; i++)
    {
        scanf("%d", stu->score + i);
    }
    for (int i = 0; i < 3; i++)
    {
        printf("%d ", *(stu->score + i));
        //(stu->score)++;
    }
    return 0;
}