'Inserting a number into dynamic array in C

I am a new to C and I need to make a function that inserts a number to a 2D dynamic array depending on what is its last number in octal representation. I tried doing something like this. Function generating an array:

void genArr(int m, int n, unsigned int** arr) {
    arr = (unsigned int**)malloc(m * sizeof(unsigned int*));
    for (int i = 0; i < m; i++) {
        arr[i] = (unsigned int*)malloc(n * sizeof(unsigned int));
    }
}

Function to insert numbers:

void insertToArr(unsigned int** arr) {
    unsigned int num;
    printf("Enter a number: \n");
    for (int i = 0; i < 100; i++) {
        scanf("%d", &num);
        if (num != 0) {
            switch (num % 8) {
                case 0:
                    break;
                case 1:
                    arr[1][i] = num;
                    break;
                case 2:
                    arr[2][i] = num;
                    break;
                case 3:
                    arr[3][i] = num;
                    break;
                case 4:
                    arr[4][i] = num;
                    break;
                case 5:
                    arr[5][i] = num;
                    break;
                case 6:
                    arr[6][i] = num;
                    break;
                case 7:
                    arr[7][i] = num;
                    break;
            }

        }
        else if (num == 0) {
            break;
        }
    }
}

But I keep getting exception error:

Unhandled exception at 0x00007FF630C019DE in App4.exe: 0xC0000005: Access violation reading location 0x0000000000000010.

I'm stuck and don't really know what is wrong.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source