一个变长数组的编译错误

照着cprimer plus抄的,总是这个编译错误 ,改了好久不知道哪里出了问题

img

img

rs是个变量,怎么能放在二维数组里面呢?

#include <stdio.h>
#define rs 3
#define cs 4
int sum(int rows, int cols, int ar[rs][cs]);
int main(void)
{
    int i = 0, j = 0;
    int varr[rs][cs];
    for (i = 0; i < rs; i++)
    {
        for (j = 0; j < cs; j++)
        {
            varr[i][j] = i + j * 2;
        }
    }
    printf("%d", sum(rs, cs, varr));
    return 0;
}
int sum(int rows, int cols, int ar[rs][cs])
{
    int tot = 0, i = 0, j = 0;
    for (i = 0; i < rows; i++)
    {
        for (j = 0; j < cols; j++)
        {
            tot += ar[i][j];
        }
    }
    return tot;
}