本人初學資料結構課程。。有很多問題想請教高手們。。麻煩

時間 2022-11-25 00:54:07

1樓:大蝦教教我

t.elem=(int*)malloc(sizeof(int)*st.length);這是強制定義,是c語言重要的特點。

主要的作用就是分配st.length的儲存空間。malloc=memorry+allocate(就是申請儲存空間的);舉個簡單的例子t=(elem*)malloc(3*sizeof(elemtype));其中sizeof是型別elemtype尺寸的大小,假設elemtype是整型int(佔據四個儲存單元),那麼3*4=12個儲存單元,這樣編譯系統就會給st分配12個儲存單元了!

用int *elem初始化順序表是指用一組連續的儲存單元依次儲存線性表的資料元素。用int *elem初始化順序表與直接將elem定義為一維陣列初始化的沒有實質性的區別。用int *elem初始化順序表其內部實質就是用一維陣列儲存的方式進行的。

2樓:匿名使用者

malloc括號後面那部分表示你申請空間的大小。sizeof(int)表示一個整形變數佔用的空間(裡面也可是其他如float char等)然後乘以順序表長度,即為你申請空間的總大小,返回值是申請空間的首地址

對於初學者你可以這樣認為 int* elem 和 int elemp在定義一維陣列時候一樣的。但是前者還可能有其他方面的用途哦

3樓:匿名使用者

malloc()函式是向系統申請分配一個結點。格式,malloc()(sizeof(空間大小))。sizeof是測量一個資料型別大小的函式,比如sizeof(int)就會等於2,因為int大小為2個位元組。

要使用這個函式必須包含檔案頭#includeelem定義為一維陣列是不行的,因為它這裡是採用鏈式的。elem是指向下一個結點位置的指標。

資料結構認真學能學好的,努力吧。