将整数重新加载到数组中

Re loading integers into an array

下面的代码在 M <= 4 时工作正常,但如果您输入一个更大的整数(在这种情况下,我实际上需要 M 为 10),似乎会出错。有谁知道为什么会发生这种情况以及可以做些什么?谢谢

/*
"Read all 100 numbers from the text file and store it in a 10x10 array."
*/

#include <stdio.h>
#include <stdlib.h>

FILE *fptr;
int n;
int M = 4; // Length and width of array

int main()
{
    // Allocating memory
    int **myArray = (int **)malloc(M * sizeof(int));
 
    for (int j = 0; j < M; j++) {
        myArray[j] = (int *)malloc(M * sizeof(int));
    }

    // Loading data into array
    fptr = fopen("List of Numbers.txt","r");
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < M; j++) {
            fscanf(fptr,"%d",&n);
            // printf("%d ",n);
            myArray[i][j] = n;
        }
    }
    fclose(fptr);

    // Printing
    for (int i = 0; i < M; i++) {
        for(int j = 0; j < M; j++) {
            printf("%d ",myArray[i][j]);
        }
        printf("\n");
    }

    return 0;
}

这一行:

int **myArray = (int **)malloc(M * sizeof(int));

应该是:

int **myArray = (int **)malloc(M * sizeof(int *));
                                              ^

您分配的是指针数组,而不是 int 数组。