c - 如何使用 sizeof 将数组的大小作为另一个参数传递

标签 c arrays pointers

我有以下功能:

addToTxBuffer((uint8_t []){0x01,0x11}, 2, zeroPad);

第二个参数2 是第一个参数的大小。我想使用 sizeof 而不是 2。有什么语法可以让它成为可能吗?即:

addToTxBuffer((uint8_t header[]){0x01,0x11}, sizeof(header), zeroPad);

虽然这不起作用。

最佳答案

复合文字是未命名的,因此您不能以那种方式引用它们。你需要单独定义数组,然后你可以得到它的大小:

uint8_t header[] = {0x01,0x11};
addToTxBuffer(header, sizeof(header), zeroPad);

关于c - 如何使用 sizeof 将数组的大小作为另一个参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51480330/

相关文章:

c - 是否有必要将 0 传递给数组

javascript - 如何在数组对象中插入元素

c - C 中的 Malloc 问题

c - C 中的 sprintf 重置计数变量的值

c - C语言中如何从子函数跳转到主函数的开头?

java - 如何预先声明一个数组?

c - 我如何使用 malloc 在 C 中创建矩阵并避免内存问题?如何使用 C99 语法将矩阵传递给函数?

c - 指针大小、方法内的 32 位与 64 位指针大小以及方法的返回值

c - 在链表中添加冗余节点

c - OpenGL 段错误