1
다음 코드가 있는데 크기가 다른 여러 행렬 곱셈의 실행 시간을 계산하려고합니다. 나는 100의 행렬 크기로 시작하여 500까지 움직였습니다. 그러나 1000을 시도하면 다음과 같은 오류 메시지가 나타납니다 : 분할 오류 (코어가 덤프 됨). 따라서 메모리와 함께해야한다고 가정합니다. 5000의 매트릭스와 심지어 10000의 실행 시간을 계산하고 싶습니다. 누구든지 내 문제를 해결할 수 있습니까?행렬 곱셈 오류 : 분할 오류 (코어 덤프 됨)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 1000
int main(void)
{
int A[SIZE][SIZE], B[SIZE][SIZE], C[SIZE][SIZE] = {0};
int i, j, k;
srand(time(NULL));
for(i = 0; i < SIZE; i++)
{
for(j = 0; j < SIZE; j++)
{
A[i][j] = rand()%100;
B[i][j] = rand()%100;
}
}
clock_t begin, end;
double time_spent;
begin = clock();
for(i = 0; i < SIZE; i++)
for(j = 0; j < SIZE; j++)
for(k = 0; k < SIZE; k++)
C[i][j] += A[i][k] * B[k][j];
end = clock();
time_spent = (double)(end - begin)/CLOCKS_PER_SEC;
printf("Elapsed time: %.2lf seconds.\n", time_spent);
return 0;
}
대단히 감사합니다! –