线性表的困惑

wind__dance 2009-11-13 03:11:26
我的代码如下:
void SqList_init(SqList list_a){
int i ;
for(i=0;i<list_a.iLength;i++)
printf("%d\n",list_a.iElem[i]);
printf("\n" );
}

main()
{
int i ;
Elemtype inset_e ;
SqList list_a;
list_a.iElem = 0;
list_a.iLength = 0;
list_a.iListsize = 0;
printf("请输入初始化线性表当前长度:");
scanf("%d" , &list_a.iLength);
printf("请输入当前元素的存储长度:");
scanf("%d" , &list_a.iListsize);
list_a.iElem = (Elemtype *) malloc (list_a.iListsize*sizeof(Elemtype));
if(!list_a.iElem){
printf("can not malloc !");
exit(0);
}
SqList_init(list_a);
//printf("请输入要插入的位置的值,目前最大位置为%d",list_a.iLength);
//scanf("%d",&i);
//SqlList_insert(list_a,i,inset_e);
}

如果我输入初始化长度为0,开辟的内存空间list_a.iElem 值为2,为什么照样能输出值呢?
...全文
89 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind__dance 2009-11-13
  • 打赏
  • 举报
回复
我明白了,哈哈
wind__dance 2009-11-13
  • 打赏
  • 举报
回复
图片没有出来,结果如下:
[b]请输入初始化线性表的长度:10
请输入初始化分配元素的个数:5
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009

Press any key to continue



wind__dance 2009-11-13
  • 打赏
  • 举报
回复
我看不像,这是完整的源代码
/*顺序线性表*/
/*定义头文件*/
#include<stdio.h>
#include<stdlib.h>
#include<stdio.h>
#include<malloc.h>

typedef int Elemtype;

typedef struct{ /*可以使用一维数组来初始化,此处为动态分配内存*/
Elemtype *iElem; /*存储空间基址*/
int iLength; /*当前长度*/
int iListsize; /*当前分配的存储容量 以一数据元素存储长度为单位*/
}SqList;

void SqList_init(SqList list_a){
int i ;
for(i=0;i<list_a.iLength;i++)
list_a.iElem[i]=i+1000;
for(i=0;i<list_a.iLength;i++)
printf("%d\n",list_a.iElem[i]);
printf("\n" );
}

void main()
{
SqList list_a;
list_a.iElem = 0;
list_a.iLength = 0;
list_a.iListsize = 0;
printf("请输入初始化线性表的长度:");
scanf("%d" , &list_a.iLength);
printf("请输入初始化分配元素的个数:");
scanf("%d" , &list_a.iListsize);
list_a.iElem = (Elemtype *) malloc (list_a.iListsize*sizeof(Elemtype));
if(!list_a.iElem){
printf("can not malloc !");
exit(0);
}
SqList_init(list_a);
}
执行结果如图
冻结 2009-11-13
  • 打赏
  • 举报
回复
C/C++,的数组越界,
只有输出的值可能异常。
为了性能,编译器并不检查越界。
给你一种很平静的致命打击。
jackyjkchen 2009-11-13
  • 打赏
  • 举报
回复
越界不代表不能输出,尤其使用不带越界检查的编译器
mengde007 2009-11-13
  • 打赏
  • 举报
回复
那是异常;
mengde007 2009-11-13
  • 打赏
  • 举报
回复
那是异常;

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧