数组下标越界引起的问题

金鸡湖123 金鸡湖123 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一个程序中有指针数据,有数组。
指针初始化后,系统应该分配内存空间。
紧接着初始化数组,但在此时数组初始化时越界,但越界之前分配的内存空间应该是合法的。问题在此时出现了:当越界现象出现时,原来分配的数据段的结构在内存中会不会变化?

#include"stdio.h"
#include"stdlib.h"
#define NULL 0
#define N 1
typedef struct _node{
int page;
int flag;
int mem;
int state;
int ci;
char m;
struct _node* next;
}node;
typedef struct _copy{
int pae;
int block;
char n;
struct _copy* next;
}copy;

void show(node* h)
{node *p;
p=h->next;
puts("页号:\n");
printf("%d",p);
while(p)
{printf("%d\n",p->page);
p=p->next;
}
}
void main()
{
int i,n;
node* head;
head=(node*)malloc(sizeof(node));
head->next = NULL;
node *p;
p=(node*)malloc(sizeof(node));
p->page=2;
p->flag=1;
p->mem=1;
p->state=0;
p->ci=0;
p->m=97;
p->next=head->next;
head->next = p;

for(i=0;i<9;i++)
{
end[i].n=97+i;end[i].block=i;//注意当 i = 8 时数组下标越界
end[i].pae=i;
}
show(head);
}

程序是一哥们写的,问题的出现太突然以至于本菜鸟小弟来不及接受。在这里恳请各位大侠慷慨拔刀相助!分会有的!
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
金鸡湖123
C语言 70,040 成员 243,237 内容