在初學資料結構時,我們往往不太清楚在定義乙個結構體指標時要不要使用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 當使用不以萬用字元開...