【发布时间】:2018-12-07 20:19:40
【问题描述】:
所以我正在用 C 语言创建一个小程序,但我遇到了一个我找不到任何相关解决方案的问题。
这是我的程序:我有一个数据数组。我有一个每秒填充这个数组的函数。所以我在main 中声明了这个数组,并将它传递给我的函数:
readDataLoop((uint16_t tableau []);
到目前为止一切顺利。一旦这个数组被填满,我就有一个函数:stateManager(state) 被调用。我没有将我的数组传递给这个函数。在这个函数中,我的状态管理器决定验证数据,所以我调用一个函数validateData() 来确定数组中的数据是否正确。
这是我的问题:我的函数 validateData 如何访问初始数组,因为我没有将它作为参数传递?
我可以做的是将数组作为参数传递给状态管理器,然后再次将数组传递给函数validateData(),但这会破坏我的逻辑。我希望我的状态管理器拥有的唯一参数就是状态。
我也可以将我的数组声明为全局变量,但我也在努力避免这种情况...
【问题讨论】:
-
您需要将其作为参数传入,否则您将无法访问它。需要注意的另一件事是数组的大小未知,因此您可能需要第二个
size_t size参数。 -
不就是包含状态的数组吗?
标签: c arrays function pointers