typedef struct{
int *data;
int length;
}sqlist;
void init_list(sqlist *l){
(*l).data=(int *)malloc(3*sizeof(int));
if(!(*l).data)printf("error!");
(*l).length=0;
}
int *data;和(*l).data=(int *)malloc(3*sizeof(int));,這兩句話的意思是不是,創建一個int型指針*data指向data,然後為data開辟動態空間?
int *data其實也可以寫成int data[];
就是在內存地址中創建一個名為data的指針,這個指針的地址也是數組data[]的地址;
(*l).data=(int *)malloc(3*sizeof(int));這句話的意思是為data開辟一個可以存放三個整型的空間,不算是動態開辟空間,因為沒有循環而已源程序也指定了只開辟三個int空間而已。