为什么报错以及如何修改

,报错了

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int u[2][50];
void f(int u[])
{
    int i;
    for(i=0;i<50;i++)
    {
        u[0][i]=i+1;
    }
}
int main()
{
    f(u);
}

15 8 [Error] cannot convert 'int ()[50]' to 'int' for argument '1' to 'void f(int*)'

想知道为什么报错,和如何修改,谢谢!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int u[2][50];
void f(int * u)
{
    int i;
    for(i=0;i<50;i++)
    {
        (&u)[0][i]=i+1;
    }
}
int main()
{
    f(&u[0][0]);
    return 0;
}

有一个全局变量u了,改掉一个
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int u[2][50];
void f(int u1[])
{
int i;
for(i=0;i<50;i++)
{
u[0][i]=i+1;
}
}
int main()
{
f(u);
}