请大神听我道来,
劳请看一下下面的代码
#include
#include
typedef struct list{
int *next;
int elem[2];//此处定义大小为2的一维数组
}*list;
list head,p,q;
void main(){
int i, j=5;
head = (list *)malloc(sizeof(list));
p=head;
while(j--){
q=(list *)malloc(sizeof(list));
p->next=q;
p=p->next;
for(i=0;i<11;i++)//此处超出了上面定义的数组界限却没有报错
p->elem[i]=i;
}
j=5;
p=head;
while(j--){
p=p->next;
for(i=0;i<11;i++)//此处超出了上面定义的数组界限却没有报错
printf("%d\t",p->elem[i]);
printf("\n");
}
}
为何结构体的数组没有报越界错误?
是什么原因的?