C数组和指针参数

Cod*_*lus 1 c arrays parameters pointers

我收到以下警告:

expected ‘float **’ but argument is of type ‘float (*)[6]’
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

//state and error are output parameters
void func(float* state[6], float* err[6][6]);

int main()
{
  float state[6];
  float err[6][6];

  func(&state, &err);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我希望state和err是ouptut参数,因此state应该是指向数组的指针,而err应该是指向2维数组的指针.

Pau*_*l R 5

将您的代码更改为:

void func(float state[], float err[][6]);

int main()
{
  float state[6];
  float err[6][6];

  func(state, err);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

要理解为什么,你需要知道这float* err[6][6]是一个6x6浮点指针数组,而不是指向6x6浮点数组的指针.