何時使用或何時不使用malloc函式

2021-08-03 09:39:54 字數 751 閱讀 6262

在初學資料結構時,我們往往不太清楚在定義乙個結構體指標時要不要使用malloc函式。

例如以下的**:

linklist  *init linklist()

retrun h;

}

linklist *s;

s->data=x;

以上這兩句**是不行的,因為s沒有指向確切的位址,所以不能通過s來向它要指向的位址賦值;

但是

linklist *s;

linklist

p;s=&p;

s->data=x;

是可以的,因為s指向p的位址,s->data=x;等同於p.data=x;

而malloc的作用就類似以上**的作用;但是不用再定義乙個結構變數p,再讓結構體指標變數s指向它的位址&p,而是直接使用malloc函式讓結構體指標變數s指向乙個確切的記憶體位址。

linklist *s;

s=(linklist*)malloc(sizeof(linklist));

s->data=x;

再舉乙個簡單的例子

int * i;

*i=1;

錯誤

int * i;i=(int*);

i=malloc(sizeof(int));

*i=1;

確是正確的

何時使用或何時不使用malloc函式

在初學資料結構時,我們往往不太清楚在定義乙個結構體指標時要不要使用malloc函式。例如以下的 linklist init linklist retrun h linklist s s data x 以上這兩句 是不行的,因為s沒有指向確切的位址,所以不能通過s來向它要指向的位址賦值 但是linkl...

NoSQL與RDBMS 何時使用,何時不使用

naresh kumar是位軟體工程師與熱情的博主,對於程式設計與新事物擁有極大的興趣,非常樂於與其他開發者和程式設計師分享技術上的研究成果。近日,naresh撰文比較了nosql與rdbms,並詳細介紹了他們各自的特點與適用的場景。nosql並不是關係型資料庫管理系統,本文將會介紹nosql資料庫...

MySQL何時使用索引 何時不使用索引

mysql何時使用索引 對乙個鍵碼使用 if null和between select from table name where key part1 1 and key part2 5 select from table name where key part1 is null 當使用不以萬用字元開...