c - 如何将 512 字节数组分割成更小的 block ?

标签 c arrays

我需要分割我的 512 字节数组,我有一个看起来像这样的函数

uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)

我的数组名为 nandtest,下面的两行代码工作正常。

int8_t nandtest[520] = {0};
CDC_Transmit_FS((uint8_t*)nandtest,512);

但是我需要将字节数组分成两 block 256 字节数组并发送。 当我尝试这样做时:

CDC_Transmit_FS((uint8_t*)nandtest,256);
CDC_Transmit_FS((uint8_t*)nandtest[256],256);

由于第二行,编译器给了我错误:

warning: cast to uint8_t*(aka unsigned char*) from samller interger type 'int8_t'(aka signed char)

如何表示我要从数组的256字节位置开始传输函数的第二行?或者创建两个不同的 256 字节数组是这里唯一的选择?

最佳答案

第一个语句是正确的,但对于第二个语句,您需要使用运算符的地址,因为您的 CDC_Transmit_FS 函数需要缓冲区的地址,但您正在位置 nandtest[256] 处传递值。

CDC_Transmit_FS((uint8_t*)nandtest,256);

与:

相同
CDC_Transmit_FS((uint8_t*)&nandtest[0],256);

要传递第二个 256 字节缓冲区,您可以使用以下命令传递 257 字节的地址:

CDC_Transmit_FS((uint8_t*)&nandtest[256],256);

关于c - 如何将 512 字节数组分割成更小的 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53862480/

相关文章:

javascript - for 循环仅显示数组中的第一项

c - 当使用带有头文件的 if 语句时,我没有得到应该得到的输出。 [C 编程]

为双向链表创建标题

c - 从文件读取并存储到C中的二维数组中

c++ - 在动态数组上实现自己的快速排序

php - 使用 PHP 数组的 Paypal NVP TransactionSearch

python - 试图构建单位矩阵?

c - OpenMP并行的两种方法之间的区别

c - 将指针数组设置为 NULL 的标准方法是什么?

c - 如何在计算着色器中修改顶点的特定属性