C语言结构体数组与顺序表的问题

#define DataType struct students cla[3]

struct students
{
long code;
char *name;
float score[3];
float sum;
};

typedef struct
{
DataType list[MaxSize];
int length;
}SeqList;

SeqList *t;

我要修改到list[0]里结构体数组cla[0]中的code元素,应该怎么写??
下面的代码可以吗?
scanf("%d",t->cla[0]->list[0].code);

4个回答

貌似define那里就过不去。。

#define 与 typedef
#define PI 3.14 这样程序后面所有的PI 都会被替换换为3.14,这样可以加强程序的健壮性,如果你想把PI 改为3.1415的时候,比你去程序找出所有的
3.14好多了。

typedef 是给一个已有的类型取一个别名, 比如
typedef int integer;那程序中所有的integer 都等价于int
int a;和integer a 是一样的

你的程序中DataType 在后面才声明,c中药各个函数和变量要先声明后使用,而且写的先后也不对,

感觉这句话“我要修改到list[0]里结构体数组cla[0]中的code元素”描述的数据结构有点混乱。
你是要建立一个顺序链表SeqList,顺序链表的节点是 students结构体变量。
#define MaxSize 3
typedef struct students
{
long code;
char *name;
float score[3];
float sum;
}DataType ;
typedef struct
{
DataType list[MaxSize];
int length;
}SeqList;
SeqList *t;
scanf("%d",t->list[0].code);//这里你只用SeqList *t定义了指针变量,而t指向的结构体SeqList变量的存储空间未定义,需要用malloc( )你开辟SeqList存储空间~
//#define DataType struct students cla[3] ,但DataType 在后面才声明,编译器会报错~

yunfenglw
天朗-星空 回复asurport:你用 typedef struct { DataType list[MaxSize]; int length; }SeqList;来定义顺序链表结构体,包括 DataType 类型的数组(数组是顺序存储),数组元素是 students类型结构体,多个 students类型结构体变量组成顺序表,和整型的length表示顺序链表节点长度~
5 年多之前 回复
asurport
成想 顺序链表的结点可以是students结构体数组吗?。。
5 年多之前 回复

SeqList *t;只是定义,还未初始化。也就是还未分配空间。
请先初始化。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问