gpt4 book ai didi

c++ - 指针列表出错

转载 作者:行者123 更新时间:2023-11-28 07:37:27 25 4
gpt4 key购买 nike

我希望能够使用指针访问数组和变量。所以我制作了一个指向这些数组和变量的指针数组。但它似乎没有正确编译。我哪里出错了? (c++, atmel, avrstudio)

volatile uint8_t    lfo1Clock = 0;
volatile uint8_t lfo2Clock = 0;
volatile uint8_t lfo3Clock = 0;
volatile uint8_t lfo4Clock = 0;
volatile uint8_t lfo5Clock = 0;
volatile uint8_t lfo6Clock = 0;

uint8_t lfo1[5]={4,0,0,0,0};
uint8_t lfo2[5]={4,0,0,0,0};
uint8_t lfo3[5]={4,0,0,0,0};
uint8_t lfo4[5]={4,0,0,0,0};
uint8_t lfo5[5]={4,0,0,0,0};
uint8_t lfo6[5]={4,0,0,0,0};

uint16_t *lfoList [] = {lfo1,lfo2,lfo3,lfo4,lfo5,lfo6};
uint16_t *lfoClockList [] = {lfo1Clock,lfo2Clock,lfo3Clock,lfo4Clock,lfo5Clock,lfo6Clock};

感谢您的任何建议。

最佳答案

您的第一个数组是 uint16_t 指针数组,但它指向 uint8_t 数组。它应该是这样的:

uint8_t    *lfoList [] = {lfo1,lfo2,lfo3,lfo4,lfo5,lfo6};

您的第二个数组也是错误类型的指针数组,但它也包含简单的 uint8_t 实例,即使类型正确也无法工作。

如果它只是一个 uint8_t 实例的数组,我怀疑你想要这个:

uint8_t    lfoClockList [] = {lfo1Clock,lfo2Clock,lfo3Clock,lfo4Clock,lfo5Clock,lfo6Clock};

如果您确实需要将第二个数组作为 uint8_t 指针数组,那么您需要获取其中每一项的地址。而且我认为您需要在数组定义中使用 volatile 以使类型兼容。

volatile uint8_t    *lfoClockList [] = {&lfo1Clock,&lfo2Clock,&lfo3Clock,&lfo4Clock,&lfo5Clock,&lfo6Clock};

关于c++ - 指针列表出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16490682/

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