关于任意大小的矩阵乘法的实现

我想实现一个矩阵乘法的程序,请问我这段代码该如何改错

#include<stdio.h>
#include<stdlib.h>
int main() {
    int m, l, s, t, i;
    int a[m * l];
    scanf_s("%d %d", &s, &t);
    scanf_s("%d %d", &m, &l);
    for (i = 0; i++; i < m * l) {
        scanf_s("%d", &a[i]);
    }
    if (s != l) {
        printf_s("mistake");
        system("pause");
    }
    int b[s * t];
    for (int j = 0; j++; j < s * t) {
        scanf_s("%d", &b[j]);
    }
    int c[m * t];
    for (int k = 0; k++; k < m * t) {
        for (int p = 0; p++; p < l)
            c[k] = a[k / l + p] * b[p * t + k % l] + c[k];
    }
    for (int q = 0; q++; q < m * t) {
        printf_s("%d", c[q]);
    }
    system("pause");
    return 0;
}

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2133 “c”: 未知的大小 Project1 D:\C++\Project1\Project1\源.c 19
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2466 不能分配常量大小为 0 的数组 Project1 D:\C++\Project1\Project1\源.c 19
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2057 应输入常量表达式 Project1 D:\C++\Project1\Project1\源.c 19
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 C4552 ”<“: 未使用表达式结果 Project1 D:\C++\Project1\Project1\源.c 16

提示数组定义长度不能用变量 a[m*l]这种写法不行 用100或者单个变量试试