首先,我知道的元素是構建陣列沒有指針,它是壞的編碼,但行使其中的一部分,我不能改變陣列後INITIALISE得到BAD值[在C]
編輯:
typedef struct st
{
int id;
char *name;
int platforms;
} *Station;
我建立元件的陣列(結構) -
int num=X
Station statTable= malloc((num)*(sizeof(*statTable)));
並對其進行初始化 -
int i=0
while(i<num){
station=TS->stations+i*sizeof(*station);
station->name="blabla";
station->id=id;
i++
}
我檢查數組初始化和它的工作後,但後面的陣列上的一些迭代 -
int i=0;
while(i<num){
station=TS->stations+i*sizeof(*station);
printf("%d",station->id);
i++
}
當TS是大結構體與指針站這是名稱爲站
我得到一個壞價值(下面的打印屏幕),它總是在第二個單元格中,有人有一個想法爲什麼發生?
MCVE,請。之間可能會發生太多事情(或不發生)。 –
我知道,但在我的代碼初始化其剛剛打印 – Bizzu
(MCVE =最小,完整,可驗證的例子,即實際編譯和可運行的東西)特別是考慮一些編碼風格的紅旗。 –