我有以下結構創建:複製到C結構的指針數據庫
typedef struct {
char name[15];
int ID;
} Employee;
typedef Employee Item;
typedef struct {
Item items[5];
int size;
} List;
我使用這個函數調用作爲偷看,看看有什麼被存儲在列表中:
void Peek (int position, List *L, Item *X);
該函數應該將列表[L]中的項目放在[position]並將其地址複製到[X]。我對防窺視功能如下:
void Peek (int position, List *L, Item *X) {
Item *B;
B = malloc(sizeof(L->items[position]));
X = B;
}
這就賦予X相同的位置爲B,但是我認爲這會導致內存泄漏,更重要的是,如果我嘗試調用項X的ID回到我的主,從這個函數:
int EmployeeID (Employee X) {
return(X.ID);
}
我與32665或類似的規定退還。將數據從L轉換爲X的另一種方法是什麼?
請啓用所有警告和調試的信息你編譯器(例如Linux上的'gcc -Wall -g');並學習如何使用調試器(例如'gdb')。 –
調試器能讓我判斷它是否是邏輯問題嗎? – user2225940
是的,你需要掌握如何使用調試器。 –