從文件中讀取數據,在連接成整型,頭一二個沒問題,第三個就全是非預期的數值,求解
文件讀取查不出什麼問題。
char dicii[256*sizeof(int)] = {0};
char dici1[256][sizeof(int)] = {0};
int dici[256] = {0};
//.........省略
fin.seekg(0,std::ios::cur);
fin.read(cpq,3*sizeof(long long)); //沒問題
fin.read(dicc,256); //沒問題
fin.read(dicii,256*sizeof(int));
for(int i=0,t=0;i<3;i++){
for(int j=0;j<sizeof(long long);j++){
cpq1[i][j] = cpq[t];
t++;
}
}
for(int i=0;i<3;i++) icpq[i] = (long long)cpq1[i]; //這個輸出正常
for(int i=0,t=0;i<256;i++){
for(int j=0;j<sizeof(int);j++){
dici1[i][j] = dicii[t];
t++;
}
}
for(int i=0;i<256;i++) dici[i] = (int)dici1[i]; //連接後輸出非預期
dici[i]是二維數組,在輸出時,數組移動的步長是一行,就是說先定位在數組的首地址,當循環繼承進行時,會移動到下一行,依次如上移動