#include <stdio.h>
typedef int element_type;
typedef struct Cell{
element_type e;
struct Cell *next;
} Cell,*List;
Cell *End(List L){
Cell *q = L;
while (q->next != NULL){
q = q->next;
}
return q;
}
void Insert(Cell *p, element_type x){
//Create new Cell
Cell *temp = (Cell*) malloc(sizeof(Cell));
if (temp == NULL){
printf("Memory Allocation Failed");
}
else{
temp->e = x;
temp->next = p->next;
p->next = temp;
}
}
element_type Retrieve(Cell *p){
return p->e;
}
int main(){
//Initialize the List;
List L = malloc(sizeof(Cell));
L->e = NULL;
L->next = NULL;
element_type x = 10;
Insert(L,x);
printf("Just retrievd the item %d\n",Retrieve(L));
return 1;
}
List_pointer.c: In function ‘Insert’:
List_pointer.c:19:24: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
List_pointer.c: In function ‘main’:
List_pointer.c:35:12: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
List_pointer.c:36:8: warning: assignment makes integer from pointer without a cast [enabled by default]
感謝您的所有幫助,我現在與結構部分。但是,當我嘗試使用malloc時,我再次收到了有關不兼容聲明的警告。我以爲malloc返回一個泛型指針爲NULL,因此應該不會有任何問題鑄造?我只是不確定我在這裏做錯了什麼。警告不兼容的指針,爲什麼會發生這種情況?
對於那些想知道爲什麼我會實現這樣一個奇怪的接口的人,我正在關注由Aho提供的書「數據結構和算法」提供的接口。示例代碼以Pascal的形式給出,非常古老。雖然我認爲學習這種超級老式的數據結構設計有一些優點。
更新:
我只是忘了包括在的malloc stdlib.h中頭球攻門! 請參考此鏈接incompatible implicit declaration of built-in function ‘malloc’