这是我的代码:
#include<stdio.h>
int main()
{
int i, list[1];
list[0]=1;
list[1]=2;
list[2]=7;
list[55]=70;
i=sizeof list;
printf("%d %d %d %d %d Size of array is %d",list[0],list[1],list[2],list[3],list[55],i);
return(0);
}
返回&#34; 1 2 7 4 70数组大小为4&#34;。为什么我可以分配,比如55来列出[55]。 list [55]不应该存在,因为我只给了数组list
1个整数的足够内存,对吧?另外,由于列表[3]不存在,这不应该给我一个错误吗?如果由于某种原因我改变数组的大小为什么不是56的大小?它出来是4.
那么我得到的输出是怎么回事?&lt; - {main question}
[因为我不想为相关问题创建一个单独的线程,为什么当我编码int list[0];
程序崩溃时,如果我以某种方式将大小从1更改为4不应该&#39;我可以将大小从0更改为4吗?]
谢谢你的帮助,我知道这可能是一个愚蠢或明显的问题。