scanf("%d", &size)
을 사용하고 행렬 크기를 지정하는 mpi 행렬 다중화 프로그램을 코딩 한 다음 int matrix[size*size]
을 정의했지만이를 준수하면 행렬이 선언되지 않습니다. 왜, 또는 내 문제가 뭔지 말해주세요!MPI 행렬 다중화 컴파일 오류 : 코드로 선언하지 않았습니다.
에드의 제안에 따르면 매트릭스 정의를 if (myid == 0) 블록으로 변경했지만 동일한 오류가 발생했습니다! 이제 코드를 게시하고 실수를 저지른 곳을 찾도록 도와주세요! 고맙습니다!
int size;
int main(int argc, char* argv[]) {
int myid, numprocs;
int *p;
MPI_Status status;
int i,j,k;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
if(myid == 0)
{
scanf("%d", &size);
int matrix1[size*size];
int matrix2[size*size];
int matrix3[size*size];
int section = size/numprocs;
int tail = size % numprocs;
srand((unsigned)time(NULL));
for(i=0; i<size; i++)
for(j=0; j<size; j++)
{
matrix1[i*size+j]=rand()%9;
matrix3[i*size+j]= 0;
matrix2[i*size+j]=rand()%9;
}
printf("Matrix1 is: \n");
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
printf("%3d", matrix1[i*size+j]);
}
printf("\n");
}
printf("\n");
printf("Matrix2 is: \n");
코드를 다시 포맷하는 방법은 무엇입니까? –
hehe, 시도했지만 레이아웃이 작동하지 않는 것 같습니다! 나는 그 문제를 너무 멍하게 생각했다. #define MAX_SIZE 500을 시도한 다음 배열의 일부만 사용했습니다.^u^ – Johnson