СИ. Не судите сильно, только учусь. При компиляции на строке с комментом выскакивает: нарушение прав доступа при чтении по адресу 0x00000000FDFDFE09

#include <stdio.h>
#include <locale.h>
#include <malloc.h>
#include <windows.h>
#include <iso646.h>
#include <stdlib.h>
int main()
{
    int** arr = NULL;
    int a;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    printf("Введіть розмір масиву:\n");
    scanf_s("%3d", &a);
    printf("\n");
    printf("Дано масив:\n");
    arr = (int**)malloc(a * sizeof(int*));
    for (int i = 0; i < a; i++)
        arr[i] = (int*)malloc(a * sizeof(int));
    for (int i = 0; i < a; i++)
        for (int j = 0; j < a; j++)
        {
            arr[i][j] = rand() % (40-(-40))-40;
            printf("%3d ", arr[i][j]);
            if (j == a - 1)
                printf("\n");
        }
    int temp = arr[0][0], i1, j1;
    for (int i = 0; i < a; i++)
        for (int j = 0; j < a; j++)
            if (arr[i][j] < temp) {
                temp = arr[i][j];
                i1 = i;
                j1 = j;
            }
    printf("Мінімальний елемент: %d\n", temp);
    int** arr1;
    arr1 = (int**) malloc(a * sizeof(int*));
    for (int i = 0; i < a; i++)
        arr1[i] = (int*) malloc(a * sizeof(int));
    for (int i = 0; i < a; i++)
        for (int j = 0; j < a; j++)
        {
            if (i == i1 or j == j1) 
            {
                i++, j++;
            }
            if (j - j1 == 1) {
                arr1[i][j - 1] = arr[i][j];
            }
            else 
                arr1[i][j] = arr[i][j]; //Вызвано исключение по адресу 0x00007FF75B381D9B в Lab 19.exe: 0xC0000005 : нарушение прав доступа при чтении по адресу 0x00000000FDFDFE09.
        }
    for (int i = 1; i < a; i++) {
        for (int j = 1; j < a; j++) {
            printf("%3d ", arr1[i][j]);
            if (j == a - 1)
                printf("\n");
        }
    }
    free(arr);
    free(arr1);
    return 0;
}

Ответы (0 шт):