因此,我正在尝试将整数文件读入2个单独的矩阵中。第一个矩阵读取得很好。然后,第二个尝试读取文件,进入最后一行并出现段错误。我查看了大约成千上万次的代码,不知道为什么会出现此段错误。任何帮助都会有所帮助!
相关代码粘贴如下:
int** allocation_matrix;
int** request_matrix;
allocation_matrix = (int **) malloc(num_processes * sizeof(int));
request_matrix = (int **) malloc(num_processes * sizeof(int));
for (i = 0; i < num_processes; i++)
{
allocation_matrix[i] = (int *) malloc(num_resources * sizeof(int));
request_matrix[i] = (int *) malloc(num_resources * sizeof(int));
}
for (i = 0; i < num_processes; i++)
{
for (j = 0; j < num_resources; j++)
{
fscanf(fp, "%d", &allocation_matrix[i][j]);
}
}
for (i = 0; i < num_processes; i++)
{
for (j = 0; j < num_resources; j++)
{
fscanf(fp, "%d", &request_matrix[i][j]);
printf("%d ", request_matrix[i][j]);
}
printf("\n");
}
答案 0 :(得分:0)
num_processes * sizeof(int)
的大小错误,因为使用了错误的类型。
不要尝试对指针使用正确的类型,而应根据取消引用的指针来确定大小。更容易编写正确的代码,进行审查和维护。
// allocation_matrix = (int **) malloc(num_processes * sizeof(int));
allocation_matrix = malloc(sizoef *allocation_matrix * num_processes);