传地址 定义地址什么的应该都没有错啊 为什么报错了呢 这个错误类型是什么意思啊 应该怎么修改呢
注意梳理结构体的两种访问方式,什么时候用.什么时候用->
l是指针,结构体中要用->。
因为是结构指针,所以访问结构里的字段的时候,把.改为->,就可以了,修改了一下,如下:
#include <stdio.h>
#include <string.h>
#define max 10
typedef struct {
char name[6];
int num,grade;
} elem;
typedef struct {
elem e[max];
int length; //这个length的作用不知道是什么 ,我就把理解为有多生个学生信息把
}L;
void insert (L * l,int i){
int k;
printf("add insert student information:\n");
scanf("%d%s%d",&(l->e[i].num),l->e[i].name,&(l->e[i].grade));
for(k=l->length;k>=i;k--){
//l->e[k+1] = l->e[k];
l->length++;
}
}
int main(void){
L l;
int i=0;
printf("insert student information:\n");
for(;i<4;i++){
scanf("%d%s%d",&l.e[i].num,l.e[i].name,&l.e[i].grade);
printf("insert student information:\n");
}
// scanf("%d",&i);
insert(&l,i);
l.length = i+1;
for(i=0;i<l.length;i++){
printf("%d %s %d\n",l.e[i].num,l.e[i].name,l.e[i].grade);
}
return 0;
}