将整数重新加载到数组中
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
数组。
下面的代码在 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
数组。