为什么同一个程序运行结果和调试结果不一样?
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;
int InitList_Sq(SqList *L)
{
L->elem = (int*)malloc(LIST_INIT_SIZE*sizeof(int)); //INIT_SIZE是10
L->length = 0;
L->listsize = LIST_INIT_SIZE;
return OK;
}
int main(void)
{
SqList L;
InitList_Sq(&L);
L.elem[0] = 25;
L.elem[1] = 1;
L.elem[2] = 2;
L.elem[3] = 5;
L.elem[4] = 4;
L.elem[5] = 5;
L.elem[6] = 6;
L.elem[7] = 7;
L.elem[8] = 8;
L.elem[9] = 9;
L.elem[11] = 11;
L.elem[12] = 15;
L.elem[100] = 19;
printf("%d",L.elem[5]);
}
第一个问题是:在InitList_Sq()函数里里已经指定了内存的大小是10个int ,为什么L.elem[12]不会报错?
第二个问题是:为什么这个程序运行的时候没有结果,而debug的时候却可以有正确的结果5?