gpt4 book ai didi

c - 将 char 分配给一个结构内的字符数组,该结构位于结构数组内,结构数组位于结构数组内

转载 作者:太空宇宙 更新时间:2023-11-04 08:03:28 24 4
gpt4 key购买 nike

我需要为大学作业模拟硬盘。我在一个结构中有一个 char 数组,另一个结构有一个最后一个结构的数组,依此类推。老师要求这样做。

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]);

但即使我尝试将“a”分配给每个字节,它也没有显示任何内容。

然而它编译和运行时没有崩溃。

以前从来没有用过这样的东西,我不知道如何解决这个问题。

https://github.com/diceEviscerator/trabOA

代码是 my_drive.cpp

保存为 cpp 但是是纯 c(需要保存为 cpp 才能运行 gtest)

最佳答案

while (cylinder[j].track[t].sector[s * 4].bytes_s[0] != 0) {

The program just won't simply enter the loop.

I tried to "initialize" the struct by making a loop that would assign 0 to every byte

那么,您所描述的内容的极其简化版本看起来像这样?

int main (void)
{
int x = 0; // Initialize to 0

while ( x != 0 ) // While not 0, do some work
{
x = 1;
}
}

将您的问题分解成小部分并以小增量对其进行编码,并在进行时验证每个部分。 “大爆炸”编码一下子增加了太多的复杂性,使问题更难发现。

关于c - 将 char 分配给一个结构内的字符数组,该结构位于结构数组内,结构数组位于结构数组内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44400747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com