L->elem=(SqList *)malloc(LIST_INIT_SIZE*sizeof(SqList));//分配内存空间
74 L1->elem=(SqList *)malloc(LIST_INIT_SIZE*sizeof(SqList));//分配内存空间
75 printf("%10d \n",LIST_INIT_SIZE*sizeof(SqList));
我用malloc初始化了两个顺序链表,为什么这两个链表的首地址差只有16而不是1600呢,打印出来的结果是这样的,而且我在输入其中一个链表时另外一个的内存空间会被覆盖。
1600
2050472048 2050472064
你把你打印这两个地址的语句发出来看一下。你应该是打印了它们在栈上的地址,并不是malloc出来的地址
printf("%p %p\n", L->elem, L1->elem);
你应该把打印的代码贴出来,L与L1对应的是哪一个结构体?
贴上结构体的代码,你这都看不出来每个结点的结构,而且估计L和L1两个链表的头结点??