gpt4 book ai didi

创建二维数组和指向 &array-1 的指针

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

对于 arm 项目中的显示驱动程序,我想将缓冲区作为 2D 数组访问,以便像这样访问它:

e.g. display_buffer[2][113]=0xff;

要通过 I2C 将缓冲区写出到显示器,我想写出整个缓冲区,但需要在它前面加上 0x40。

io_write(I2C_0_io, (uint8_t *)buf, 513); //where buf should be 0x40,content, of, display_buffer,...

有没有一种方法可以声明 display_buffer[4][128],使其前面有一个字节和一个指向它的指针?

我试过了

uint8_t *_display_buffer = (uint8_t*)513;
uint8_t *display_buffer[4][128]=_display_buffer+1;

当然,编译器认为这不是一个好主意(“无效的初始化程序”)

最佳答案

您需要将 _display_buffer 定义为一个足够大的数组来容纳您的二维数组加上 1 个字节,并将 display_buffer 定义为指向数组的指针(您可以将其索引为二维数组)而不是二维数组:

uint8_t _display_buffer[513] = { 0x40 };
uint8_t (*display_buffer)[128]=(uint8_t (*)[128])(_display_buffer+1);

关于创建二维数组和指向 &array-1 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47930613/

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