Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > invalid types ‘double[int]’ for array subscript


Автор: kolorimage 22.3.2011, 20:22
Что компилятор от меня хочет? :cry:
Код

/mpi/5laba/main.cpp||In function ‘int main(int, char**)’:|
/mpi/5laba/main.cpp|19|error: invalid types ‘double[int]’ for array subscript|
/mpi/5laba/main.cpp|20|error: invalid types ‘double[int]’ for array subscript|
/mpi/5laba/main.cpp|21|error: invalid types ‘double[int]’ for array subscript|
/mpi/5laba/main.cpp|22|error: invalid types ‘double[int]’ for array subscript|
/mpi/5laba/main.cpp|8|warning: unused variable ‘max’|
/mpi/5laba/main.cpp|8|warning: unused variable ‘begin_time’|
||=== Build finished: 4 errors, 2 warnings ===|


Код

#include <stdio.h>
#include <math.h>
#include <cstdlib>
#include "mpi.h"
int main( int argc, char *argv[] )
{
    int i,size,rank,tag=99, leng=10, source;
     double A[10000], buffer, max, begin_time;
      MPI_Status status;
    MPI_Init(&argc, &argv);

    MPI_Comm_size( MPI_COMM_WORLD, &size) ;
    MPI_Comm_rank( MPI_COMM_WORLD, &rank) ;
/*----------------process 0---------------*/
        if(rank==0){
/*----------------array generate----------*/
for(i=0;i<=10000;i++){A[i]=((sin(i)))/(5*(i+1));}
for(i=0;i<=10000/4/leng-1;i++){
     MPI_Send(&buffer[i*leng],leng,MPI_DOUBLE,1,tag,MPI_COMM_WORLD);
     MPI_Send(&buffer[2499+i*leng],leng,MPI_DOUBLE,2,tag,MPI_COMM_WORLD);
     MPI_Send(&buffer[4999+i*leng],leng,MPI_DOUBLE,3,tag,MPI_COMM_WORLD);
     MPI_Send(&buffer[7499+i*leng],leng,MPI_DOUBLE,4,tag,MPI_COMM_WORLD);
}
        }

/*----------------process 1---------------*/
    if(rank==1){
        double Rbuffer[leng];
        for(i=0;i<=10000/4/leng-1;i++){
    MPI_Recv(&Rbuffer,1,MPI_DOUBLE,source,tag,MPI_COMM_WORLD,&status);
    printf("Результат процесу %f\n",buffer);}
    }
/*----------------process 2---------------*/
        if(rank==2){
        double Rbuffer[leng];
     for(i=0;i<=10000/4/leng-1;i++){
    MPI_Recv(&Rbuffer,1,MPI_DOUBLE,source,tag,MPI_COMM_WORLD,&status);
    printf("Результат процесу %f\n",buffer);}
    }
/*----------------process 3---------------*/
        if(rank==3){
        double Rbuffer[leng];
         for(i=0;i<=10000/4/leng-1;i++){
    MPI_Recv(&Rbuffer,1,MPI_DOUBLE,source,tag,MPI_COMM_WORLD,&status);
    printf("Результат процесу %f\n",buffer);}
    }
            if(rank==4){
        double Rbuffer[leng];
         for(i=0;i<=10000/4/leng-1;i++){
    MPI_Recv(&Rbuffer,1,MPI_DOUBLE,source,tag,MPI_COMM_WORLD,&status);
    printf("Результат процесу %f\n",buffer);}
    }

    MPI_Finalize();
    return 0;
}


Автор: mes 22.3.2011, 21:05
Цитата(kolorimage @  22.3.2011,  19:22 Найти цитируемый пост)
Что компилятор от меня хочет? :cry

говорит что buffer не массив.. 

Автор: kolorimage 22.3.2011, 21:17
вот это я придууроок... smile 
мда..
Спасибо!

Автор: bsa 24.3.2011, 11:16

M
bsa
kolorimage, раз ответ на вопрос получен, то пометь тему решенной

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)