我需要为大学任务模拟一个硬盘。我有一个结构内的char数组,另一个结构有最后一个结构的数组等等。老师要求这样做。将char指定给一个struct中的char数组,这些结构在一个结构数组内部的结构数组里面,这个结构数组里面有一个结构数组,里面有一个结构数组,里面有一个struct array
typedef struct block {
unsigned char bytes_s[512];
} block;
typedef struct sectror_array {
block sector[60];
} sectror_array;
typedef struct track_array {
sectror_array track[5];
} track_array;
所有这一切都在
track_array cylinder[10];
宣布为全球性的。
我的问题是,我似乎无法访问任何这些。在我的代码,我使用的是循环分配给“字节”变量,然后尝试打印
int c=0, t=0, s=0, b=0;
while(c<11){
if(b==512){
b=0;
s++;
if(s==60){
s=0;
t++;
if(t==5){
t=0;
c++;
if(c==10){
return;
}
}
}
}
cylinder[c].track[t].sector[s].bytes_s[b]=0;
b++;
printf("%d %d %d %d, %c\n",c, t, s ,b,
cylinder[c].track[t].sector[s].bytes_s[b]);
但它说明不了什么,甚至为我tryed分配“a”到每一个字节。
然而,它编译和运行没有崩溃。
以前从来没有这样的工作,我想出了如何解决这个问题的想法。
https://github.com/diceEviscerator/trabOA
代码my_drive.cpp
保存为CPP但纯C(保存为CPP运行GTEST需要)
你能告诉我们你用来循环'j','t'和's'的'for()'语句(或其他)吗? –
也许它不会进入循环,因为条件是错误的? – immibis
也许你需要自己做一些调试工作。我保证这个问题与嵌套的数组结构无关。 – immibis