使用c中的指针解码传递给函数的2个元素的数组



我想实现一个函数,在这里我们传递一个由2个元素组成的数组。但在获取实际值时,我只获取数组中的一个元素。如何获得第二个元素?

#include<stdio.h>
#include<conio.h>
#include<stdint.h>
uint16_t a;
uint8_t arr[2];
void mcp_write(uint8_t reg, uint8_t *buffer, uint8_t length)
{
uint16_t buff;
printf("%dn",reg);
printf("%dn",*buffer);
printf("%dn",length);
}
int main()
{
arr[0]=15;
arr[1]=255;
mcp_write(1,arr,1);
getch();
}

输出为

1
255
1
void mcp_write(uint8_t reg, uint8_t *buffer, uint8_t length)
{
for (int i = 0; i < length; i++)
{
printf("%dn",i);
printf("%dn",reg);
printf("%dn",buffer[i]);
printf("%dn",length);
}
}
int main()
{
arr[0]=15;
arr[1]=255;
mcp_write(1,arr,sizeof(arr)/sizeof(arr[0]));
getch();
}

最新更新