L.length为什么是0?
程序代码:
#include <stdio.h> #include <stdlib.h> #define LIST_INIT_SIZE 100 typedef struct List { int *elem; int length; int listsize; }SeqList; SeqList Init(SeqList L); bool Create(SeqList L); void main() { SeqList L; L = Init(L); Create(L); printf("%d\n",L.length); } SeqList Init(SeqList L) { L.elem = (int *)malloc(LIST_INIT_SIZE*sizeof(int)); if (!L.elem) exit(1); L.length = 0; L.listsize = LIST_INIT_SIZE; return L; } bool Create(SeqList L) { int *ptr; ptr = L.elem; for (int i = 0; i < 5; i++) { scanf("%d",ptr); ptr++; L.length++; } return true; }