我正在爲我的編程主題做一個練習,這是一個醫院Manegment計劃。在程序開始時,我需要將信息從.txt發送到動態結構。我一直在爲最後幾個小時作戰,爲什麼我會丟失數據。功能丟失指針信息
爲什麼退出此功能後我的頭指針爲空,我試圖將其打印出來?指針不應該保存這些信息。
在此先感謝。 Ps:如果您有任何有關我的算法的提示,請隨時說。
void dump_med(struct medico *head_m)
{
int i = 1;
struct medico *new_med;
struct medico *temp_m;
FILE *f = fopen(M_FILE, "r");
new_med = malloc(sizeof(struct medico));
temp_m = malloc(sizeof(struct medico));
if(f == NULL)
{
printf("Erro a abrir o ficheiro\n");
return;
}
if(new_med == NULL || temp_m == NULL)
{
printf("Erro a alocar a memória\n");
return;
}
while(!feof(f))
{
new_med = realloc(new_med, sizeof(struct medico) * i);
if(new_med == NULL)
{
printf("Erro a realocar a memória\n");
return;
}
fscanf(f, "%[^\n]", new_med->nome);
fscanf(f, "%s %d.%d--%d.%d\n", new_med->especialidade, &(new_med->entrada.h),
&(new_med->entrada.m), &(new_med->saida.h), &(new_med->saida.m));
temp_m = new_med;
temp_m->next = head_m;
head_m = temp_m;
new_med = new_med->next;
i++;
}
free(new_med);
free(temp_m);
fclose(f);
}
我問你如何在這裏試圖建立一個前向鏈接鏈表的機制。有很多非常簡單的方法可以做到這一點。 – WhozCraig
如果你引導我更簡單的方式,那就是我的第五次鏈接列表嘗試,其他時候我總是失去了頭部位置,我會很感激。 – m3k3r1
[類似的東西](http://pastebin.com/XESzqnap),使用提供的文件名和節點指針的地址調用,該指針將接收正在生成的列表。祝你好運。在[codereview.stackexchange.com](http://codereview.stackexchange.com)上可能會加上任何未來的「這怎麼可能更好」的問題。 – WhozCraig