This code says segmentation fault cause the program's scanf isn't working. I used a debugger to find out this. The scanf(num) is skipped. And thus the segmentation fault. Can somebody tell why the scanf is being skipped? I used [^\n] so that scanf can read string with spaces. Help.
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(void)
{
    int a, b;
    scanf("%d %d", &a, &b);
    int sumr, maxr;
    int sumc, maxc;
    int white[b + 1];
    white[0] = -1;
    int ele[b][a];
    for (int opl = 0; opl < a; opl++)
    {
        for (int pl = 0; pl < b; pl++)
        {
            ele[pl][opl] = 0;
        }
    }
    char num[100000];
    int c = -1;
c:
    c++;
    scanf("%[^\n]%*c", num);
    int hu = 0;
    int len = strlen(num);
    white[b] = len;
    for (int ji = 0; ji < len; ji++)
    {
        if (isspace(num[ji]))
        {
            white[hu] = ji;
            hu++;
        }
    }
    for (int ft = 0; ft < b; ft++)
    {
        int lopl = 1;
        for (int koi = white[ft + 1] - 1; koi > white[ft]; koi--)
        {
            ele[ft][c] += lopl * (num[koi] - '0');
            lopl = lopl * 10;
        }
    }
    if (a > c)
        goto c;
}
 
     
     
    