不知为什么,下面的程序结果在输入数组后是乱码。那个struct定义的数组不是全局变量吗?

[复制链接]
查看11 | 回复4 | 2013-4-5 12:24:22 | 显示全部楼层 |阅读模式
你的函数没有用指针,而是变量;变量只是拷贝,函数退出后什么也没有了,所以到主函数中再度调用输出函数时那些变量就是随机的了,所以是乱码。这样改——1.主函数中SeqList L;L.last=create(&L)-1;//用&L即指针调用disp(&L);//同上2.void disp(SeqList L)中void disp(SeqList L){//改成SeqList *L,形参用指针int i;coutlast;用指针操作符->coutelem;...
回复

使用道具 举报

千问 | 2013-4-5 12:24:22 | 显示全部楼层
这个和 L 是不是局部变量无关, 而是 create(SeqList L) 函数会采用值传递, 并不会对原来的 L 做初始化动作, 用该用 create(SeqList *L), 通过指针传递,注意要把 L.elem 改为 L->elem 和函数调用改为 create(&L);#includeusing names...
回复

使用道具 举报

千问 | 2013-4-5 12:24:22 | 显示全部楼层
L只是局部变量,把 create(SeqList L)改为create(SeqList *L) ,通过指针传递,注意要把L.elem改为L->elem和函数调用改为create(&L);...
回复

使用道具 举报

千问 | 2013-4-5 12:24:22 | 显示全部楼层
您编的是c++怎么还用C语言的东西呢。用class啊...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行