我在C語言中遇到問題。從函數中導出列表
這個for循環創建一個文件信息列表。 「pl」,「pc」和「pv」每行。
也打印每行的信息,3個數字。
============================================== =======
Ex。 1
for(i = 0, aux = base->prox; i < p; aux = aux->prox, i++){
aux = (celula *)malloc(sizeof(celula));
fscanf(file, "%d %d %d", &(aux->pl) , &(aux->pc), &(aux->pv));
printf("%d %d %d\n", aux->pl , aux->pc, aux->pv);
}
========================================== ===========
在第二個示例中,我將信息打印出for循環,但在另一個循環中打印出了循環的前一個循環中創建的列表。
============================================== =======
Ex。 2
for(i = 0, aux = base->prox; i < p; aux = aux->prox, i++){
aux = (celula *)malloc(sizeof(celula));
fscanf(file, "%d %d %d", &(aux->pl) , &(aux->pc), &(aux->pv));
/*printf("%d %d %d\n", aux->pl , aux->pc, aux->pv);*/
}
for(aux = base; aux != NULL; aux = aux->prox){
printf("%d %d %d\n", aux->pl , aux->pc, aux->pv);
}
========================================== ===========
現在,問題是:在第一個例子中,它通常打印信息。在第二個示例中,不像第一個示例那樣正常打印信息,而是僅打印一條帶有「0 0 0」的行。
第1例和第2例之間有什麼不同?它不應該這樣做嗎?
請幫忙!
試過這個... \t AUX =(celula *)malloc的(的sizeof(celula)); \t爲(I = 0,輔助=鹼基> PROX;我
PROX,我++){ \t \t \t \t的fscanf(文件, 「%d%d%d」,& (aux-> pl),&(aux-> pc),&(aux-> pv)); \t \t/* printf的( 「%d%d%d \ n」 個,AUX-> PL,AUX->電腦,AUX-> PV); */ } 段錯誤。 –
這將有助於查看其他源代碼。 –