gpt4 book ai didi

c - 将数组传递给 C 中的函数时出现问题

转载 作者:行者123 更新时间:2023-11-30 15:37:45 24 4
gpt4 key购买 nike

我有一个缓冲区声明为

uint8_t buffer[1000];

它加载了数据,然后发送到如下函数:

Send_Data(buffer);

该函数声明为:

void Send_Data(uint8_t data[])

但是当我进入该函数时,数据数组为空。

我可能做错了什么?

最佳答案

除了您在问题中解释的内容之外,您肯定还做错了其他事情。此代码运行良好:

#include <stdio.h>
#include <inttypes.h>
#include <stdint.h>

void Send_Data(uint8_t data[]) {
printf ("%d\n", data[0]);
}

int main (void) {
uint8_t buffer[1000];
buffer[1] = 0;

buffer[0] = 65;
Send_Data (buffer);

buffer[0] = 66;
Send_Data (buffer);

return 0;
}

生成输出:

65
66

由于,正如上面的程序所证明的,很有可能做你想做的事情,并且因为你的问题中没有足够的信息来进一步缩小问题范围,所以我们能做的最好的就是概括:

  1. 检查您是否在函数调用之前真正填充了数组。

  2. 不一定要依靠调试器来告诉您函数内的数组未填充:打印其中一些来确定。

  3. 以完全相同的方式运行上面的程序,看看在函数内的数组中得到了什么。特别是,例如,查看它是否被视为 C 字符串(将显示为 "A""B")。

    <

关于c - 将数组传递给 C 中的函数时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22098212/

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