的邊緣,我有以下結構結構在C越來越成問題,在不正確的結果
struct statistics {
int result[100],steps[100],gamecounter;
float time[100];
};
typedef struct statistics GAMEST;
在我的功能,我這樣稱呼它
GAMEST gamesStruct;
gamesStruct.result[2]=res;
gamesStruct.steps[2]=step;
gamesStruct.time[2]=tim;
在我值分配給該結構的那一刻它的一切都很好,數據也很好。但是,當我嘗試打印我以前分配例如值gamesStruct.result [0]我所得到 是一個很大的數字,它看起來像一樣,如果gamesStruct.result [0]是空的內存地址。
任何想法?
下面是一些更多的代碼
int stats(int res,int gamenum,int step,float tim,int counter){
GAMEST gamesStruct;
char vic[3][7];
if(gamenum>=0){
strcpy(vic[0],"Draw");
strcpy(vic[1],"Victory");
strcpy(vic[2],"Loss");
gamesStruct.result[gamenum]=res;
gamesStruct.steps[gamenum]=step;
gamesStruct.time[gamenum]=tim;
}else{
printf("Stats per game :\n\n");
system("pause");
for(int i=0;i<=counter;i++){
int tmp=gamesStruct.result[0];
printf("%d",gamesStruct.result[0]);
system("pause");
system("pause");
printf("Game %d : %s in %d moves and %f seconds\n\n",i+1,vic[tmp],gamesStruct.steps[i],gamesStruct.time[i]);
}
printf("out");
system("pause");
int ressum[3]={0,0,0};
int stepsum=0;
int timesum=0;
printf("2");
system("pause");
for(int i=0;i<=counter;i++){
ressum[gamesStruct.result[i]]=ressum[gamesStruct.result[i]]+gamesStruct.result[i];
stepsum=stepsum+gamesStruct.steps[i];
timesum=timesum+gamesStruct.time[i];
}
float resmid[3],stepmid,timemid;
resmid[0]=resmid[0]/(counter+1);
resmid[1]=resmid[1]/(counter+1);
resmid[2]=resmid[2]/(counter+1);
stepmid=stepmid/(counter+1);
timemid=timemid/(counter+1);
printf("\n\nAverage stats for %d games:\n\n",counter+1);
printf("\nVictories :%f Losses :%f Draws :%f \n",resmid[1],resmid[2],resmid[0]);
printf("\nAverage moves :%f and Time :%f\n\n",stepmid,timemid);
}
return(0);
}
如果gamenum較大或等於0,我的正常工作的struct賦值。 但是當我試圖把它們打印我的程序崩潰,因爲數據是錯誤的
我想指出,之前,我嘗試訪問他們,我已經賦值,那是我的問題
[學會如何提問](http://stackoverflow.com/help/how-to-問)[發佈最小,完整有效的實施例]的(http://stackoverflow.com/help/mcve) – Rakib
可能重複:。http://stackoverflow.com/questions/1597405/what-happens-to-一個聲明的,未初始化的變量,在-C-做,它具備的,一個價值 – vines
@vines我的問題是,我在位置0分配一個值,當我在數組的下一個位置分配以前是走了我的問題不是關於空變量是關於變量不保持其值 – mremremre1