w_wei_w
w_wei_w
采纳率0%
2017-04-08 10:00 阅读 1.4k

大神求救c语言,为何结构体的数组没有报越界错误?

请大神听我道来,
劳请看一下下面的代码
#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");
}

}

为何结构体的数组没有报越界错误?
是什么原因的?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-04-08 10:03

    c语言在任何情况下,甚至编译出让你计算机崩溃死机的程序都不会报越界错误。

    点赞 评论 复制链接分享

相关推荐