太过平凡的小蚂蚁 2015-03-22 13:20 采纳率: 26.9%
浏览 2860

顺序表 结构体 求指教

#include
#include
#include
#define MAXSIZE 100
typedef struct{
char *name;
char *Num;
}DataType;
DataType re1,re2,re3;
typedef struct{
DataType *data;
int length;
}SeqList;
//初始化

void InitList(SeqList *L)
{

L->data=(DataType*)malloc(sizeof(DataType)*MAXSIZE);
L->length=0;
}
//插入
void InsertList(SeqList *L,DataType e,int i)
{
int j;
if(iL->length+1)
printf("位置错误\n");
if(L->length>=MAXSIZE)
printf("表空间会溢出\n");
//正式插入元素,如果i<=j是真正的插入,所以需要挪动后面的元素给其空出位置
for(j=L->length;i<=j;j--)
L->data[j+1]=L->data[j];
L->data[i]=e;
L->length++;

}
void Output(SeqList *L)
{
int i;
for(i=1;i<=L->length;i++)
printf("%s\t%s\n",L->data[i].name,L->data[i].Num);
printf("\n");
}
void main()
{
SeqList La;//定义L为这种类型表,即数据类型是结构体类型的,并拥有长度。
InitList(&La); //初始化这个顺序表,即动态分配内存并给这个表的长度初始为0

//对结构体变量进行赋值

 re1.name="donghe";      re1.Num="15202248150";
 re2.name="songxuekai";  re2.Num="15138412255";
 re3.name="limingrui";   re3.Num="13549367791";

//对表元素进行赋值
InsertList(&La,re1,1);
InsertList(&La,re2,2);
InsertList(&La,re3,3);
Output(&La);
}

上面的顺序表是没改之前的,我把定义结构体类型时的char *Num;改为 int Num;
然后在下面对结构体变量赋值时 re1.Num="15202248150";改为re1.Num=15202248150,其他两个改为是这样。
结果就出现了错误,不知道哪里的问题,请指教!

  • 写回答

1条回答 默认 最新

  • 恒宝乐园 2015-03-25 00:40
    关注

    同志,你似乎是超出了int范围赋值导致了错误。(仅谬见,望对您有帮助)
    对于本人来说,更喜欢你原来的写法。
    ps:顺序表的其它函数呢?感觉你写的代码还是不错的,起码思路很清晰,而且注释加的也很恰当。

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题