w_wei_w 2017-04-08 10:00 采纳率: 0%
浏览 1472

大神求救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条回答

  • threenewbee 2017-04-08 10:03
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器