gpt4 book ai didi

c - 在c中使用char数组实现一个64 block 逻辑磁盘

转载 作者:太空宇宙 更新时间:2023-11-04 01:27:57 26 4
gpt4 key购买 nike

我对C真的很陌生....我想要的逻辑磁盘(我们称之为 logdisk)必须有 64 个 block ,每个 block 是 64 字节。

例如,logdisk[i][j],i是logdisk上逻辑 block 的编号或索引,j是 block 长度,以字节为单位。

所以,

logdisk[5][0] 应该给我 block 5 的第一个字节。

但是我在创建这个日志磁盘时遇到了麻烦,因为我不知道如何使用 malloc 分配一个二维字符数组,我有下面的代码。

char *logdisk = malloc(64 * 64);    

谁能告诉我如何创建一个包含 64 个 64 字节 block 的二维字符数组?

感谢评论,现在我得到了一些线索,

char (*logdisk)[64] = malloc(64*64);

上面的是Jasen的,下面的是我的想法,64*64的逻辑盘应该用哪个?

 char **logdisk = malloc(sizeof(char)*64); 
for (int i = 0; i < 64; i++) {
logdisk[i] = malloc(sizeof(char)*64);
}

最佳答案

unsigned char (*logdisk)[64] = malloc(64*64);

我使用了 unsigned char,因为 char 可以是有符号的或无符号的,这取决于您使用的编译器,而且大多数人认为字节是无符号的。

这将 logdisk 定义为指向 block 的指针(这是一个 64 位无符号字符的数组),

然后你可以说 logdisk[5][7] 并得到 block 5 的第七个字节等等......

关于c - 在c中使用char数组实现一个64 block 逻辑磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27883968/

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