c语言 - 为什么没有为我的结构字符成员分配值"F",而是保留默认初始化值?



我正在从磁盘映像读取二进制数据,当buffer[0]等于3时,RootDirectory[j]的状态成员应为'F'。但是,当我运行代码时,值是0。不过,每次应该输入if语句时都会输入if语句(chartest==3(。

typedef struct{
char Status;
int StartingBlock; 
int BlockNumbers; 
int FileSize; 
int CreateTime;
int ModifyTime; 
char FileName[31]; 
}RootDirectory; 
RootDirectory *Dir =  (RootDirectory*)malloc(sizeof(RootDirectory)* RootNum);
char buffer1[50]; 
int chartest; 
int j = 0; 
int RootBytes = Info.RootDirectoryBlocks * Info.BlockSize; 
int DirectoryEntries = RootBytes/64;
for(int i = 0; i < DirectoryEntries; i++){
int statusread = fread(buffer1, 1,1, fp); 
if((int) buffer1[0] == 0){
fseek(fp, 63, SEEK_CUR); 
}
else{
chartest = (int)buffer1[0]; 
if(chartest == 3){
Dir[j].Status = 'F'; 
}
fseek(fp, 63, SEEK_CUR); 
j++; 
}
}
for(int i = 0; i < j; i++){
printf("%cn", Dir[j].Status); 
}

它应该是最后一个循环中的printf("%cn", Dir[i].Status);。非Dir[j].Status

最新更新